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
Stanislav Chernyshev dbfb8dba24 fix
2025-06-18 00:49:37 +03:00

37 lines
1.4 KiB
Go

package database
import "time"
// Player представляет модель таблицы
// для хранения профилей игроков в БД
type Player struct {
NickName string `gorm:"primary_key;not null"`
}
// PlayerFinishGame представляет модель таблицы
// для хранения завершенной игры в БД
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"`
}
// GameSnapshot представляет модель таблицы
// для хранения снапшота игры в БД
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"`
}