62 lines
1.7 KiB
Go
62 lines
1.7 KiB
Go
// schema.go defines the database schema for the GORM models.
|
||
package db
|
||
|
||
import "gorm.io/gorm"
|
||
|
||
type AppConfig struct {
|
||
gorm.Model
|
||
DataDir string
|
||
AssetsDir string
|
||
EmailAddress string
|
||
LicenseKey string
|
||
SystemLevel string // BASIC, ADVANCED, ELITE, COMMERCIAL
|
||
SelectedAudioDevice string // Raw SDL audio device name from enumeration; empty string = system default. Humanized for display via mixer.HumanizeDeviceName
|
||
InitialFontSize int // How large to create the font atlas
|
||
StandardFontSize int // The font size used for most text rendering
|
||
LinePattern string // "fibonacci"
|
||
AudioEnabled bool
|
||
DynamicAudio bool // When true, scroller switches audio per-proclamation frequency
|
||
SavedVolume float64 // In-app volume as a 0.0–1.0 fraction of the OS audio sink (kiosk pins the sink to 100%, so this is the effective output level)
|
||
FirstRun bool // Is this the first time the application has been run?
|
||
}
|
||
|
||
type Log struct {
|
||
gorm.Model
|
||
Timestamp int64
|
||
Level string
|
||
Message string
|
||
}
|
||
|
||
type Proclamation struct {
|
||
ID string `gorm:"primaryKey"`
|
||
Name string
|
||
Content string
|
||
SolfeggioFrequencyID int
|
||
CategoryID int
|
||
Selected bool
|
||
Available bool
|
||
Price float64
|
||
}
|
||
|
||
type ProclamationCategory struct {
|
||
ID int `gorm:"primaryKey"`
|
||
Name string
|
||
ParentId int
|
||
}
|
||
|
||
type SolfeggioFrequency struct {
|
||
ID int `gorm:"primaryKey"`
|
||
Name string
|
||
Value int
|
||
}
|
||
|
||
type AudioTrack struct {
|
||
ID int `gorm:"primaryKey"`
|
||
Filename string
|
||
Name string
|
||
AssignedFrequency int
|
||
MD5 string
|
||
Selected bool
|
||
Order int
|
||
}
|