Files
kouiz/internal/store/models.go
2025-06-15 14:46:32 +02:00

67 lines
999 B
Go

package store
import (
"time"
"gorm.io/datatypes"
"gorm.io/gorm"
)
var models = []any{
&Player{},
&QuizCategory{},
&QuizEntry{},
&QuizTurn{},
}
type Player struct {
gorm.Model
Name string
UserEmail string `gorm:"index"`
UserProvider string `gorm:"index"`
Score int
PlayedAt time.Time
SelectedEntry *uint
SelectedTurn *uint
SelectedAt time.Time
SelectedAnswer *int
}
type QuizTurn struct {
gorm.Model
StartedAt time.Time `gorm:"index"`
EndedAt time.Time `gorm:"index"`
Entries []*QuizEntry `gorm:"many2many:quiz_turn_entries;"`
}
type QuizCategory struct {
gorm.Model
Name string `gorm:"index"`
Theme string `gorm:"index"`
Description string
}
type QuizEntry struct {
gorm.Model
Category *QuizCategory
CategoryID uint
Provider string `gorm:"index"`
ProviderID string `gorm:"index"`
Question string
Propositions datatypes.JSONSlice[string]
Answer string
Level uint `gorm:"index"`
Anecdote string
}