apskel-pos-backend/internal/mappers/product_ingredient_mapper.go
2025-08-03 23:55:51 +07:00

71 lines
1.9 KiB
Go

package mappers
import (
"apskel-pos-be/internal/entities"
"apskel-pos-be/internal/models"
)
func MapProductIngredientEntityToModel(entity *entities.ProductIngredient) *models.ProductIngredient {
if entity == nil {
return nil
}
return &models.ProductIngredient{
ID: entity.ID,
OrganizationID: entity.OrganizationID,
OutletID: entity.OutletID,
ProductID: entity.ProductID,
IngredientID: entity.IngredientID,
Quantity: entity.Quantity,
CreatedAt: entity.CreatedAt,
UpdatedAt: entity.UpdatedAt,
Product: ProductEntityToModel(entity.Product),
Ingredient: MapIngredientEntityToModel(entity.Ingredient),
}
}
func MapProductIngredientModelToEntity(model *models.ProductIngredient) *entities.ProductIngredient {
if model == nil {
return nil
}
return &entities.ProductIngredient{
ID: model.ID,
OrganizationID: model.OrganizationID,
OutletID: model.OutletID,
ProductID: model.ProductID,
IngredientID: model.IngredientID,
Quantity: model.Quantity,
CreatedAt: model.CreatedAt,
UpdatedAt: model.UpdatedAt,
Product: ProductModelToEntity(model.Product),
Ingredient: MapIngredientModelToEntity(model.Ingredient),
}
}
func MapProductIngredientEntitiesToModels(entities []*entities.ProductIngredient) []*models.ProductIngredient {
if entities == nil {
return nil
}
models := make([]*models.ProductIngredient, len(entities))
for i, entity := range entities {
models[i] = MapProductIngredientEntityToModel(entity)
}
return models
}
func MapProductIngredientModelsToEntities(models []*models.ProductIngredient) []*entities.ProductIngredient {
if models == nil {
return nil
}
entities := make([]*entities.ProductIngredient, len(models))
for i, model := range models {
entities[i] = MapProductIngredientModelToEntity(model)
}
return entities
}