apskel-pos-backend/internal/mappers/ingredient_unit_converter_mapper.go

92 lines
2.7 KiB
Go
Raw Normal View History

2025-09-12 01:12:11 +07:00
package mappers
import (
"apskel-pos-be/internal/entities"
"apskel-pos-be/internal/models"
)
// Entity to Model conversions
func IngredientUnitConverterEntityToModel(entity *entities.IngredientUnitConverter) *models.IngredientUnitConverter {
if entity == nil {
return nil
}
model := &models.IngredientUnitConverter{
ID: entity.ID,
OrganizationID: entity.OrganizationID,
IngredientID: entity.IngredientID,
FromUnitID: entity.FromUnitID,
ToUnitID: entity.ToUnitID,
ConversionFactor: entity.ConversionFactor,
IsActive: entity.IsActive,
CreatedAt: entity.CreatedAt,
UpdatedAt: entity.UpdatedAt,
CreatedBy: entity.CreatedBy,
UpdatedBy: entity.UpdatedBy,
}
// Map related entities
if entity.Ingredient != nil {
model.Ingredient = MapIngredientEntityToModel(entity.Ingredient)
}
if entity.FromUnit != nil {
model.FromUnit = MapUnitEntityToModel(entity.FromUnit)
}
if entity.ToUnit != nil {
model.ToUnit = MapUnitEntityToModel(entity.ToUnit)
}
return model
}
// Entity to Response conversions
func IngredientUnitConverterEntityToResponse(entity *entities.IngredientUnitConverter) *models.IngredientUnitConverterResponse {
if entity == nil {
return nil
}
response := &models.IngredientUnitConverterResponse{
ID: entity.ID,
OrganizationID: entity.OrganizationID,
IngredientID: entity.IngredientID,
FromUnitID: entity.FromUnitID,
ToUnitID: entity.ToUnitID,
ConversionFactor: entity.ConversionFactor,
IsActive: entity.IsActive,
CreatedAt: entity.CreatedAt,
UpdatedAt: entity.UpdatedAt,
CreatedBy: entity.CreatedBy,
UpdatedBy: entity.UpdatedBy,
}
// Map related entities
if entity.Ingredient != nil {
response.Ingredient = MapIngredientEntityToResponse(entity.Ingredient)
}
if entity.FromUnit != nil {
response.FromUnit = MapUnitEntityToResponse(entity.FromUnit)
}
if entity.ToUnit != nil {
response.ToUnit = MapUnitEntityToResponse(entity.ToUnit)
}
return response
}
// Batch conversion methods
func IngredientUnitConverterEntitiesToModels(entities []*entities.IngredientUnitConverter) []*models.IngredientUnitConverter {
models := make([]*models.IngredientUnitConverter, len(entities))
for i, entity := range entities {
models[i] = IngredientUnitConverterEntityToModel(entity)
}
return models
}
func IngredientUnitConverterEntitiesToResponses(entities []*entities.IngredientUnitConverter) []*models.IngredientUnitConverterResponse {
responses := make([]*models.IngredientUnitConverterResponse, len(entities))
for i, entity := range entities {
responses[i] = IngredientUnitConverterEntityToResponse(entity)
}
return responses
}