Add coa purchase and vendors
This commit is contained in:
@@ -0,0 +1,154 @@
|
||||
package transformer
|
||||
|
||||
import (
|
||||
"apskel-pos-be/internal/contract"
|
||||
"apskel-pos-be/internal/models"
|
||||
)
|
||||
|
||||
// Request transformations
|
||||
func CreateIngredientUnitConverterRequestToModel(req *contract.CreateIngredientUnitConverterRequest) *models.CreateIngredientUnitConverterRequest {
|
||||
if req == nil {
|
||||
return nil
|
||||
}
|
||||
|
||||
return &models.CreateIngredientUnitConverterRequest{
|
||||
IngredientID: req.IngredientID,
|
||||
FromUnitID: req.FromUnitID,
|
||||
ToUnitID: req.ToUnitID,
|
||||
ConversionFactor: req.ConversionFactor,
|
||||
IsActive: req.IsActive,
|
||||
}
|
||||
}
|
||||
|
||||
func UpdateIngredientUnitConverterRequestToModel(req *contract.UpdateIngredientUnitConverterRequest) *models.UpdateIngredientUnitConverterRequest {
|
||||
if req == nil {
|
||||
return nil
|
||||
}
|
||||
|
||||
return &models.UpdateIngredientUnitConverterRequest{
|
||||
FromUnitID: req.FromUnitID,
|
||||
ToUnitID: req.ToUnitID,
|
||||
ConversionFactor: req.ConversionFactor,
|
||||
IsActive: req.IsActive,
|
||||
}
|
||||
}
|
||||
|
||||
func ListIngredientUnitConvertersRequestToModel(req *contract.ListIngredientUnitConvertersRequest) *models.ListIngredientUnitConvertersRequest {
|
||||
if req == nil {
|
||||
return nil
|
||||
}
|
||||
|
||||
return &models.ListIngredientUnitConvertersRequest{
|
||||
IngredientID: req.IngredientID,
|
||||
FromUnitID: req.FromUnitID,
|
||||
ToUnitID: req.ToUnitID,
|
||||
IsActive: req.IsActive,
|
||||
Search: req.Search,
|
||||
Page: req.Page,
|
||||
Limit: req.Limit,
|
||||
}
|
||||
}
|
||||
|
||||
func ConvertUnitRequestToModel(req *contract.ConvertUnitRequest) *models.ConvertUnitRequest {
|
||||
if req == nil {
|
||||
return nil
|
||||
}
|
||||
|
||||
return &models.ConvertUnitRequest{
|
||||
IngredientID: req.IngredientID,
|
||||
FromUnitID: req.FromUnitID,
|
||||
ToUnitID: req.ToUnitID,
|
||||
Quantity: req.Quantity,
|
||||
}
|
||||
}
|
||||
|
||||
// Response transformations
|
||||
func IngredientUnitConverterModelResponseToResponse(model *models.IngredientUnitConverterResponse) contract.IngredientUnitConverterResponse {
|
||||
if model == nil {
|
||||
return contract.IngredientUnitConverterResponse{}
|
||||
}
|
||||
|
||||
response := contract.IngredientUnitConverterResponse{
|
||||
ID: model.ID,
|
||||
OrganizationID: model.OrganizationID,
|
||||
IngredientID: model.IngredientID,
|
||||
FromUnitID: model.FromUnitID,
|
||||
ToUnitID: model.ToUnitID,
|
||||
ConversionFactor: model.ConversionFactor,
|
||||
IsActive: model.IsActive,
|
||||
CreatedAt: model.CreatedAt,
|
||||
UpdatedAt: model.UpdatedAt,
|
||||
CreatedBy: model.CreatedBy,
|
||||
UpdatedBy: model.UpdatedBy,
|
||||
}
|
||||
|
||||
// Map related entities
|
||||
if model.Ingredient != nil {
|
||||
ingredientResp := IngredientModelResponseToResponse(model.Ingredient)
|
||||
response.Ingredient = &ingredientResp
|
||||
}
|
||||
if model.FromUnit != nil {
|
||||
fromUnitResp := UnitModelResponseToResponse(model.FromUnit)
|
||||
response.FromUnit = &fromUnitResp
|
||||
}
|
||||
if model.ToUnit != nil {
|
||||
toUnitResp := UnitModelResponseToResponse(model.ToUnit)
|
||||
response.ToUnit = &toUnitResp
|
||||
}
|
||||
|
||||
return response
|
||||
}
|
||||
|
||||
func ConvertUnitModelResponseToResponse(model *models.ConvertUnitResponse) contract.ConvertUnitResponse {
|
||||
if model == nil {
|
||||
return contract.ConvertUnitResponse{}
|
||||
}
|
||||
|
||||
response := contract.ConvertUnitResponse{
|
||||
FromQuantity: model.FromQuantity,
|
||||
ToQuantity: model.ToQuantity,
|
||||
ConversionFactor: model.ConversionFactor,
|
||||
}
|
||||
|
||||
// Map units
|
||||
if model.FromUnit != nil {
|
||||
fromUnitResp := UnitModelResponseToResponse(model.FromUnit)
|
||||
response.FromUnit = &fromUnitResp
|
||||
}
|
||||
if model.ToUnit != nil {
|
||||
toUnitResp := UnitModelResponseToResponse(model.ToUnit)
|
||||
response.ToUnit = &toUnitResp
|
||||
}
|
||||
|
||||
// Map ingredient
|
||||
if model.Ingredient != nil {
|
||||
ingredientResp := IngredientModelResponseToResponse(model.Ingredient)
|
||||
response.Ingredient = &ingredientResp
|
||||
}
|
||||
|
||||
return response
|
||||
}
|
||||
|
||||
// Helper functions for related entities
|
||||
func IngredientModelResponseToResponse(model *models.IngredientResponse) contract.IngredientResponse {
|
||||
if model == nil {
|
||||
return contract.IngredientResponse{}
|
||||
}
|
||||
|
||||
return contract.IngredientResponse{
|
||||
ID: model.ID,
|
||||
Name: model.Name,
|
||||
}
|
||||
}
|
||||
|
||||
func UnitModelResponseToResponse(model *models.UnitResponse) contract.UnitResponse {
|
||||
if model == nil {
|
||||
return contract.UnitResponse{}
|
||||
}
|
||||
|
||||
return contract.UnitResponse{
|
||||
ID: model.ID,
|
||||
Name: model.Name,
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user