package bossraid import ( "time" "gorm.io/gorm" ) type RoomStatus string const ( StatusWaiting RoomStatus = "waiting" StatusInProgress RoomStatus = "in_progress" StatusCompleted RoomStatus = "completed" StatusFailed RoomStatus = "failed" ) // BossRoom represents a boss raid session room. type BossRoom struct { ID uint `json:"id" gorm:"primaryKey"` CreatedAt time.Time `json:"createdAt"` UpdatedAt time.Time `json:"updatedAt"` DeletedAt gorm.DeletedAt `json:"-" gorm:"index"` SessionName string `json:"sessionName" gorm:"type:varchar(100);uniqueIndex;not null"` BossID int `json:"bossId" gorm:"index;not null"` Status RoomStatus `json:"status" gorm:"type:varchar(20);index;default:waiting;not null"` MaxPlayers int `json:"maxPlayers" gorm:"default:3;not null"` Players string `json:"players" gorm:"type:text"` // JSON array of usernames StartedAt *time.Time `json:"startedAt,omitempty"` CompletedAt *time.Time `json:"completedAt,omitempty"` }