83 lines
2.4 KiB
Go
83 lines
2.4 KiB
Go
package mappers
|
|
|
|
import (
|
|
"apskel-pos-be/internal/entities"
|
|
"apskel-pos-be/internal/models"
|
|
)
|
|
|
|
// ToGamePrizeResponse converts a game prize entity to a game prize response
|
|
func ToGamePrizeResponse(gamePrize *entities.GamePrize) *models.GamePrizeResponse {
|
|
if gamePrize == nil {
|
|
return nil
|
|
}
|
|
|
|
return &models.GamePrizeResponse{
|
|
ID: gamePrize.ID,
|
|
GameID: gamePrize.GameID,
|
|
Name: gamePrize.Name,
|
|
Weight: gamePrize.Weight,
|
|
Stock: gamePrize.Stock,
|
|
MaxStock: gamePrize.MaxStock,
|
|
Threshold: gamePrize.Threshold,
|
|
FallbackPrizeID: gamePrize.FallbackPrizeID,
|
|
Image: gamePrize.Image,
|
|
Metadata: gamePrize.Metadata,
|
|
Game: ToGameResponse(&gamePrize.Game),
|
|
FallbackPrize: ToGamePrizeResponse(gamePrize.FallbackPrize),
|
|
CreatedAt: gamePrize.CreatedAt,
|
|
UpdatedAt: gamePrize.UpdatedAt,
|
|
}
|
|
}
|
|
|
|
// ToGamePrizeResponses converts a slice of game prize entities to game prize responses
|
|
func ToGamePrizeResponses(gamePrizes []entities.GamePrize) []models.GamePrizeResponse {
|
|
responses := make([]models.GamePrizeResponse, len(gamePrizes))
|
|
for i, gp := range gamePrizes {
|
|
responses[i] = *ToGamePrizeResponse(&gp)
|
|
}
|
|
return responses
|
|
}
|
|
|
|
// ToGamePrizeEntity converts a create game prize request to a game prize entity
|
|
func ToGamePrizeEntity(req *models.CreateGamePrizeRequest) *entities.GamePrize {
|
|
return &entities.GamePrize{
|
|
GameID: req.GameID,
|
|
Name: req.Name,
|
|
Weight: req.Weight,
|
|
Stock: req.Stock,
|
|
MaxStock: req.MaxStock,
|
|
Threshold: req.Threshold,
|
|
FallbackPrizeID: req.FallbackPrizeID,
|
|
Image: req.Image,
|
|
Metadata: req.Metadata,
|
|
}
|
|
}
|
|
|
|
// UpdateGamePrizeEntity updates a game prize entity with update request data
|
|
func UpdateGamePrizeEntity(gamePrize *entities.GamePrize, req *models.UpdateGamePrizeRequest) {
|
|
if req.Name != nil {
|
|
gamePrize.Name = *req.Name
|
|
}
|
|
if req.Weight != nil {
|
|
gamePrize.Weight = *req.Weight
|
|
}
|
|
if req.Stock != nil {
|
|
gamePrize.Stock = *req.Stock
|
|
}
|
|
if req.MaxStock != nil {
|
|
gamePrize.MaxStock = req.MaxStock
|
|
}
|
|
if req.Threshold != nil {
|
|
gamePrize.Threshold = req.Threshold
|
|
}
|
|
if req.FallbackPrizeID != nil {
|
|
gamePrize.FallbackPrizeID = req.FallbackPrizeID
|
|
}
|
|
if req.Image != nil {
|
|
gamePrize.Image = req.Image
|
|
}
|
|
if req.Metadata != nil {
|
|
gamePrize.Metadata = req.Metadata
|
|
}
|
|
}
|