package mappers import ( "apskel-pos-be/internal/entities" "apskel-pos-be/internal/models" ) // ToGameResponse converts a game entity to a game response func ToGameResponse(game *entities.Game) *models.GameResponse { if game == nil { return nil } return &models.GameResponse{ ID: game.ID, Name: game.Name, Type: string(game.Type), IsActive: game.IsActive, Metadata: game.Metadata, CreatedAt: game.CreatedAt, UpdatedAt: game.UpdatedAt, } } // ToGameResponses converts a slice of game entities to game responses func ToGameResponses(games []entities.Game) []models.GameResponse { responses := make([]models.GameResponse, len(games)) for i, game := range games { responses[i] = *ToGameResponse(&game) } return responses } // ToGameEntity converts a create game request to a game entity func ToGameEntity(req *models.CreateGameRequest) *entities.Game { return &entities.Game{ Name: req.Name, Type: entities.GameType(req.Type), IsActive: req.IsActive, Metadata: req.Metadata, } } // UpdateGameEntity updates a game entity with update request data func UpdateGameEntity(game *entities.Game, req *models.UpdateGameRequest) { if req.Name != nil { game.Name = *req.Name } if req.Type != nil { game.Type = entities.GameType(*req.Type) } if req.IsActive != nil { game.IsActive = *req.IsActive } if req.Metadata != nil { game.Metadata = req.Metadata } }