apskel-pos-backend/internal/transformer/category_transformer.go
2025-10-06 22:46:01 +07:00

57 lines
1.5 KiB
Go

package transformer
import (
"apskel-pos-be/internal/appcontext"
"apskel-pos-be/internal/contract"
"apskel-pos-be/internal/models"
)
func CreateCategoryRequestToModel(apctx *appcontext.ContextInfo, req *contract.CreateCategoryRequest) *models.CreateCategoryRequest {
return &models.CreateCategoryRequest{
OrganizationID: apctx.OrganizationID,
Name: req.Name,
Description: req.Description,
ImageURL: nil,
Order: *req.Order,
}
}
func UpdateCategoryRequestToModel(req *contract.UpdateCategoryRequest) *models.UpdateCategoryRequest {
return &models.UpdateCategoryRequest{
Name: req.Name,
Description: req.Description,
ImageURL: nil,
Order: req.Order,
IsActive: nil,
}
}
func CategoryModelResponseToResponse(cat *models.CategoryResponse) *contract.CategoryResponse {
if cat == nil {
return nil
}
return &contract.CategoryResponse{
ID: cat.ID,
OrganizationID: cat.OrganizationID,
Name: cat.Name,
Description: cat.Description,
BusinessType: "restaurant", // Default business type
Order: cat.Order,
Metadata: map[string]interface{}{},
CreatedAt: cat.CreatedAt,
UpdatedAt: cat.UpdatedAt,
}
}
func CategoriesToResponses(categories []models.CategoryResponse) []contract.CategoryResponse {
responses := make([]contract.CategoryResponse, len(categories))
for i, cat := range categories {
response := CategoryModelResponseToResponse(&cat)
if response != nil {
responses[i] = *response
}
}
return responses
}