111 lines
2.7 KiB
Go
111 lines
2.7 KiB
Go
package mappers
|
|
|
|
import (
|
|
"apskel-pos-be/internal/constants"
|
|
"apskel-pos-be/internal/entities"
|
|
"apskel-pos-be/internal/models"
|
|
)
|
|
|
|
func UserEntityToModel(entity *entities.User) *models.User {
|
|
if entity == nil {
|
|
return nil
|
|
}
|
|
|
|
return &models.User{
|
|
ID: entity.ID,
|
|
OrganizationID: entity.OrganizationID,
|
|
OutletID: entity.OutletID,
|
|
Name: entity.Name,
|
|
Email: entity.Email,
|
|
Role: constants.UserRole(entity.Role),
|
|
Permissions: map[string]interface{}(entity.Permissions),
|
|
IsActive: entity.IsActive,
|
|
CreatedAt: entity.CreatedAt,
|
|
UpdatedAt: entity.UpdatedAt,
|
|
}
|
|
}
|
|
|
|
func UserModelToEntity(model *models.User) *entities.User {
|
|
if model == nil {
|
|
return nil
|
|
}
|
|
|
|
return &entities.User{
|
|
ID: model.ID,
|
|
OrganizationID: model.OrganizationID,
|
|
OutletID: model.OutletID,
|
|
Name: model.Name,
|
|
Email: model.Email,
|
|
Role: entities.UserRole(model.Role),
|
|
Permissions: entities.Permissions(model.Permissions),
|
|
IsActive: model.IsActive,
|
|
CreatedAt: model.CreatedAt,
|
|
UpdatedAt: model.UpdatedAt,
|
|
}
|
|
}
|
|
|
|
func UserCreateRequestToEntity(req *models.CreateUserRequest, passwordHash string) *entities.User {
|
|
if req == nil {
|
|
return nil
|
|
}
|
|
|
|
permissions := entities.Permissions{}
|
|
if req.Permissions != nil {
|
|
permissions = entities.Permissions(req.Permissions)
|
|
}
|
|
|
|
return &entities.User{
|
|
OrganizationID: req.OrganizationID,
|
|
OutletID: req.OutletID,
|
|
Name: req.Name,
|
|
Email: req.Email,
|
|
PasswordHash: passwordHash,
|
|
Role: entities.UserRole(req.Role),
|
|
Permissions: permissions,
|
|
IsActive: true,
|
|
}
|
|
}
|
|
|
|
func UserEntityToResponse(entity *entities.User) *models.UserResponse {
|
|
if entity == nil {
|
|
return nil
|
|
}
|
|
|
|
return &models.UserResponse{
|
|
ID: entity.ID,
|
|
OrganizationID: entity.OrganizationID,
|
|
OutletID: entity.OutletID,
|
|
Name: entity.Name,
|
|
Email: entity.Email,
|
|
Role: constants.UserRole(entity.Role),
|
|
Permissions: map[string]interface{}(entity.Permissions),
|
|
IsActive: entity.IsActive,
|
|
CreatedAt: entity.CreatedAt,
|
|
UpdatedAt: entity.UpdatedAt,
|
|
}
|
|
}
|
|
|
|
func UserEntitiesToModels(entities []*entities.User) []*models.User {
|
|
if entities == nil {
|
|
return nil
|
|
}
|
|
|
|
models := make([]*models.User, len(entities))
|
|
for i, entity := range entities {
|
|
models[i] = UserEntityToModel(entity)
|
|
}
|
|
return models
|
|
}
|
|
|
|
func UserEntitiesToResponses(entities []*entities.User) []*models.UserResponse {
|
|
if entities == nil {
|
|
return nil
|
|
}
|
|
|
|
responses := make([]*models.UserResponse, len(entities))
|
|
for i, entity := range entities {
|
|
responses[i] = UserEntityToResponse(entity)
|
|
}
|
|
return responses
|
|
}
|