Files
MyClub/internal/models/scoreboard.go
T
Tomas Dvorak 8a7c292e54 dev day #70
2025-10-24 14:52:46 +02:00

42 lines
1.5 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"`
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" }