/
model.go
37 lines (33 loc) · 973 Bytes
/
model.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
package gamestrg
import (
"github.com/Haraj-backend/hex-monscape/internal/core/entity"
"github.com/Haraj-backend/hex-monscape/internal/driven/storage/mysql/shared"
)
type GameRow struct {
ID string `db:"id"`
PlayerName string `db:"player_name"`
CreatedAt int64 `db:"created_at"`
BattleWon int `db:"battle_won"`
Scenario entity.Scenario `db:"scenario"`
Partner *shared.MonsterRow `db:"partner"`
}
func (r *GameRow) ToGame() *entity.Game {
return &entity.Game{
ID: r.ID,
PlayerName: r.PlayerName,
CreatedAt: r.CreatedAt,
BattleWon: r.BattleWon,
Scenario: r.Scenario,
Partner: r.Partner.ToMonster(),
}
}
func NewGameRow(game *entity.Game) *GameRow {
return &GameRow{
ID: game.ID,
PlayerName: game.PlayerName,
CreatedAt: game.CreatedAt,
BattleWon: game.BattleWon,
Scenario: game.Scenario,
Partner: shared.ToMonsterRow(game.Partner),
}
}