1
0
mirror of https://github.com/MADTeacher/go_basics.git synced 2025-11-23 21:34:47 +02:00
Files
go_basics/part_6/tic_tac_toe_v5/database/models.go

37 lines
1.4 KiB
Go
Raw Normal View History

2025-06-17 15:48:17 +03:00
package database
import "time"
2025-06-18 00:49:37 +03:00
// Player представляет модель таблицы
// для хранения профилей игроков в БД
2025-06-17 15:48:17 +03:00
type Player struct {
NickName string `gorm:"primary_key;not null"`
}
2025-06-18 00:49:37 +03:00
// PlayerFinishGame представляет модель таблицы
// для хранения завершенной игры в БД
2025-06-17 15:48:17 +03:00
type PlayerFinishGame struct {
ID int `gorm:"primary_key;autoIncrement;not null"`
WinnerName string `gorm:"not null"`
BoardJSON []byte `gorm:"type:json;not null"`
PlayerFigure int `gorm:"not null"`
Time time.Time `gorm:"not null"`
PlayerNickName string `gorm:"not null"`
Player *Player `gorm:"foreignKey:PlayerNickName;references:NickName"`
}
2025-06-18 00:49:37 +03:00
// GameSnapshot представляет модель таблицы
// для хранения снапшота игры в БД
2025-06-17 15:48:17 +03:00
type GameSnapshot struct {
ID int `gorm:"primaryKey;autoIncrement;not null"`
SnapshotName string `gorm:"not null"`
BoardJSON []byte `gorm:"type:json;not null"`
PlayerFigure int `gorm:"not null"`
State int `gorm:"not null"`
Mode int `gorm:"not null"`
Difficulty int `gorm:"not null"`
IsCurrentFirst bool `gorm:"not null"`
PlayerNickName string `gorm:"not null"`
Player *Player `gorm:"foreignKey:PlayerNickName;references:NickName"`
}