2025-09-17 19:30:17 +07:00

54 lines
1.3 KiB
Go

package mappers
import (
"apskel-pos-be/internal/entities"
"apskel-pos-be/internal/models"
)
// ToTierResponse converts a tier entity to a tier response
func ToTierResponse(tier *entities.Tier) *models.TierResponse {
if tier == nil {
return nil
}
return &models.TierResponse{
ID: tier.ID,
Name: tier.Name,
MinPoints: tier.MinPoints,
Benefits: tier.Benefits,
CreatedAt: tier.CreatedAt,
UpdatedAt: tier.UpdatedAt,
}
}
// ToTierResponses converts a slice of tier entities to tier responses
func ToTierResponses(tiers []entities.Tier) []models.TierResponse {
responses := make([]models.TierResponse, len(tiers))
for i, tier := range tiers {
responses[i] = *ToTierResponse(&tier)
}
return responses
}
// ToTierEntity converts a create tier request to a tier entity
func ToTierEntity(req *models.CreateTierRequest) *entities.Tier {
return &entities.Tier{
Name: req.Name,
MinPoints: req.MinPoints,
Benefits: req.Benefits,
}
}
// UpdateTierEntity updates a tier entity with update request data
func UpdateTierEntity(tier *entities.Tier, req *models.UpdateTierRequest) {
if req.Name != nil {
tier.Name = *req.Name
}
if req.MinPoints != nil {
tier.MinPoints = *req.MinPoints
}
if req.Benefits != nil {
tier.Benefits = req.Benefits
}
}