103 lines
2.0 KiB
Go
103 lines
2.0 KiB
Go
package models
|
|
|
|
import "time"
|
|
|
|
type (
|
|
UserTeam string
|
|
UserRole string
|
|
)
|
|
|
|
const (
|
|
// UserTeam
|
|
UserTeamBlue = "blue"
|
|
UserTeamRed = "red"
|
|
UserTeamNone = "none"
|
|
//UserRole
|
|
UserRoleMime = "mime"
|
|
UserRoleGuesser = "guesser"
|
|
UserRoleNone = "none"
|
|
)
|
|
|
|
func StrToUserTeam(s string) UserTeam {
|
|
switch s {
|
|
case "blue":
|
|
return UserTeamBlue
|
|
case "red":
|
|
return UserTeamRed
|
|
default:
|
|
return UserTeamNone
|
|
}
|
|
}
|
|
|
|
func StrToUserRole(s string) UserRole {
|
|
switch s {
|
|
case "mime":
|
|
return UserRoleMime
|
|
case "guesser":
|
|
return UserRoleGuesser
|
|
default:
|
|
return UserRoleNone
|
|
}
|
|
}
|
|
|
|
type UserState struct {
|
|
Username string
|
|
RoomID string
|
|
Team UserTeam
|
|
Role UserRole
|
|
}
|
|
|
|
func MakeTestState() *FullInfo {
|
|
cards := []WordCard{
|
|
{Word: "hamster", Color: "blue"},
|
|
{Word: "child", Color: "red"},
|
|
{Word: "wheel", Color: "white"},
|
|
{Word: "condition", Color: "black"},
|
|
{Word: "test", Color: "white"},
|
|
{Word: "ball", Color: "blue"},
|
|
{Word: "violin", Color: "red"},
|
|
{Word: "rat", Color: "white"},
|
|
{Word: "perplexity", Color: "blue"},
|
|
{Word: "notion", Color: "red"},
|
|
{Word: "guitar", Color: "blue"},
|
|
{Word: "ocean", Color: "blue"},
|
|
{Word: "moon", Color: "blue"},
|
|
{Word: "coffee", Color: "blue"},
|
|
{Word: "mountain", Color: "blue"},
|
|
{Word: "book", Color: "blue"},
|
|
{Word: "camera", Color: "blue"},
|
|
{Word: "apple", Color: "red"},
|
|
{Word: "fire", Color: "red"},
|
|
{Word: "rose", Color: "red"},
|
|
{Word: "sun", Color: "red"},
|
|
{Word: "cherry", Color: "red"},
|
|
{Word: "heart", Color: "red"},
|
|
{Word: "tomato", Color: "red"},
|
|
{Word: "cloud", Color: "white"},
|
|
}
|
|
room := &Room{
|
|
ID: "test-id",
|
|
CreatedAt: time.Now(),
|
|
CreatorName: "test-name",
|
|
Cards: cards,
|
|
}
|
|
us := &UserState{
|
|
Username: "test-name",
|
|
Team: UserTeamNone,
|
|
Role: UserRoleNone,
|
|
RoomID: "test-id",
|
|
}
|
|
return &FullInfo{
|
|
State: us,
|
|
Room: room,
|
|
}
|
|
}
|
|
|
|
func InitState(username string) *UserState {
|
|
return &UserState{
|
|
Username: username,
|
|
Team: UserTeamNone,
|
|
Role: UserRoleNone,
|
|
}
|
|
}
|