mirror of
https://github.com/Dvorinka/MyClubServer.git
synced 2026-06-04 10:42:57 +00:00
44 lines
1.6 KiB
Go
44 lines
1.6 KiB
Go
package models
|
|
|
|
import "gorm.io/gorm"
|
|
|
|
// ScoreboardState is a singleton table to persist scoreboard settings
|
|
// Only one row is used (ID=1)
|
|
type ScoreboardState struct {
|
|
gorm.Model
|
|
HomeName string `json:"home_name"`
|
|
AwayName string `json:"away_name"`
|
|
HomeLogoURL string `json:"home_logo_url"`
|
|
AwayLogoURL string `json:"away_logo_url"`
|
|
HomeShort string `json:"home_short"`
|
|
AwayShort string `json:"away_short"`
|
|
PrimaryColor string `json:"primary_color"`
|
|
SecondaryColor string `json:"secondary_color"`
|
|
HomeTextColor string `json:"home_text_color"`
|
|
AwayTextColor string `json:"away_text_color"`
|
|
HomeScore int `json:"home_score"`
|
|
AwayScore int `json:"away_score"`
|
|
HalfLength int `json:"half_length"`
|
|
Theme string `json:"theme"`
|
|
ExternalMatchID string `json:"external_match_id"`
|
|
Active bool `json:"active"`
|
|
// Timer fields
|
|
Timer string `json:"timer"`
|
|
Running bool `json:"running"`
|
|
TimerStartUnix int64 `json:"timer_start_unix" gorm:"column:timer_start_unix"`
|
|
ElapsedSeconds int `json:"elapsed_seconds" gorm:"column:elapsed_seconds"`
|
|
// Extended fields (ported from MyClub ScoreBoard)
|
|
// Visual sides flipped (UI-only flag, does not swap data)
|
|
SidesFlipped bool `json:"sides_flipped"`
|
|
// Current half: 1 or 2
|
|
Half int `json:"half"`
|
|
// QR overlay schedule settings
|
|
QRShowEveryMinutes int `json:"qr_show_every_minutes"`
|
|
QRShowDurationSeconds int `json:"qr_show_duration_seconds"`
|
|
// Team fouls (0..5 display dots)
|
|
HomeFouls int `json:"home_fouls"`
|
|
AwayFouls int `json:"away_fouls"`
|
|
}
|
|
|
|
func (ScoreboardState) TableName() string { return "scoreboard_states" }
|