54 lines
1.3 KiB
Go
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
|
|
}
|
|
}
|