Feat: room and actions repos
This commit is contained in:
@ -70,33 +70,33 @@ type CardMark struct {
|
||||
|
||||
type Room struct {
|
||||
ID string `json:"id" db:"id"`
|
||||
CreatedAt time.Time `json:"created_at" db:"created_at"` // limit?
|
||||
RoomLink string
|
||||
CreatorName string `json:"creator_name"`
|
||||
ActionHistory []Action
|
||||
TeamTurn UserTeam
|
||||
RedTeam Team
|
||||
BlueTeam Team
|
||||
Cards []WordCard
|
||||
ThisTurnLimit uint8 // how many cards guessers can open this turn
|
||||
OpenedThisTurn uint8 // how many cards have been opened this turn
|
||||
WCMap map[string]WordColor
|
||||
BotMap map[string]BotPlayer // key is bot name
|
||||
BlueCounter uint8
|
||||
RedCounter uint8
|
||||
RedTurn bool // false is blue turn
|
||||
MimeDone bool
|
||||
IsPublic bool
|
||||
IsRunning bool `json:"is_running"`
|
||||
Language string `json:"language" example:"en" form:"language"`
|
||||
RoundTime int32 `json:"round_time"`
|
||||
IsOver bool
|
||||
TeamWon UserTeam // blue | red
|
||||
//
|
||||
Mark CardMark // card is marked
|
||||
// needed for debug
|
||||
LogJournal []string
|
||||
Settings GameSettings
|
||||
CreatedAt time.Time `json:"created_at" db:"created_at"`
|
||||
CreatorName string `json:"creator_name" db:"creator_name"`
|
||||
TeamTurn UserTeam `db:"team_turn"`
|
||||
ThisTurnLimit uint8 `db:"this_turn_limit"`
|
||||
OpenedThisTurn uint8 `db:"opened_this_turn"`
|
||||
BlueCounter uint8 `db:"blue_counter"`
|
||||
RedCounter uint8 `db:"red_counter"`
|
||||
RedTurn bool `db:"red_turn"`
|
||||
MimeDone bool `db:"mime_done"`
|
||||
IsPublic bool `db:"is_public"`
|
||||
IsRunning bool `json:"is_running" db:"is_running"`
|
||||
Language string `json:"language" example:"en" form:"language" db:"language"`
|
||||
RoundTime uint32 `json:"round_time" db:"round_time"`
|
||||
IsOver bool `db:"is_over"`
|
||||
TeamWon UserTeam `db:"team_won"`
|
||||
RoomPass string `json:"room_pass" db:"room_pass"`
|
||||
// fields not in db
|
||||
RoomLink string `db:"-"`
|
||||
ActionHistory []Action `db:"-"`
|
||||
RedTeam Team `db:"-"`
|
||||
BlueTeam Team `db:"-"`
|
||||
Cards []WordCard `db:"-"`
|
||||
WCMap map[string]WordColor `db:"-"`
|
||||
BotMap map[string]BotPlayer `db:"-"`
|
||||
Mark CardMark `db:"-"`
|
||||
LogJournal []string `db:"-"`
|
||||
Settings GameSettings `db:"-"`
|
||||
}
|
||||
|
||||
func (r *Room) ClearMarks() {
|
||||
@ -325,10 +325,10 @@ type WordCard struct {
|
||||
}
|
||||
|
||||
type GameSettings struct {
|
||||
Language string `json:"language" example:"en" form:"language"`
|
||||
RoomPass string `json:"room_pass"`
|
||||
TurnSecondsLeft uint32
|
||||
RoundTime uint32
|
||||
Language string `json:"language" example:"en" form:"language" db:"language"`
|
||||
RoomPass string `json:"room_pass" db:"room_pass"`
|
||||
TurnSecondsLeft uint32 `db:"-"`
|
||||
RoundTime uint32 `json:"round_time" db:"round_time"`
|
||||
}
|
||||
|
||||
// =====
|
||||
@ -343,19 +343,14 @@ type RoomReq struct {
|
||||
|
||||
func (rr *RoomReq) CreateRoom(creator string) *Room {
|
||||
roomID := xid.New().String()
|
||||
settings := GameSettings{
|
||||
Language: rr.Language,
|
||||
RoomPass: rr.RoomPass,
|
||||
RoundTime: rr.RoundTime,
|
||||
}
|
||||
return &Room{
|
||||
// RoomName: ,
|
||||
ID: roomID,
|
||||
CreatedAt: time.Now(),
|
||||
// PlayerList: []string{creator},
|
||||
ID: roomID,
|
||||
CreatedAt: time.Now(),
|
||||
CreatorName: creator,
|
||||
Language: rr.Language,
|
||||
RoundTime: rr.RoundTime,
|
||||
RoomPass: rr.RoomPass,
|
||||
BotMap: make(map[string]BotPlayer),
|
||||
Settings: settings,
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user