package database import ( "time" ) // Question represents a quiz question type Question struct { ID string `json:"id" db:"id"` Theme string `json:"theme" db:"theme"` Text string `json:"text" db:"text"` Answer string `json:"answer" db:"answer"` Hint *string `json:"hint" db:"hint"` Difficulty string `json:"difficulty" db:"difficulty"` IsActive bool `json:"is_active" db:"is_active"` CreatedAt time.Time `json:"created_at" db:"created_at"` UpdatedAt time.Time `json:"updated_at" db:"updated_at"` } // GameSession represents a game session type GameSession struct { ID string `json:"id" db:"id"` PlayerName string `json:"player_name" db:"player_name"` UserID *string `json:"user_id" db:"user_id"` TotalScore int `json:"total_score" db:"total_score"` QuestionsAsked int `json:"questions_asked" db:"questions_asked"` QuestionsCorrect int `json:"questions_correct" db:"questions_correct"` HintsUsed int `json:"hints_used" db:"hints_used"` StartTime time.Time `json:"start_time" db:"start_time"` EndTime *time.Time `json:"end_time" db:"end_time"` Status string `json:"status" db:"status"` CurrentQuestionID *string `json:"current_question_id" db:"current_question_id"` CurrentAttempts int `json:"current_attempts" db:"current_attempts"` SessionData *string `json:"session_data" db:"session_data"` } // QuestionAttempt represents an attempt at answering a question type QuestionAttempt struct { ID string `json:"id" db:"id"` SessionID string `json:"session_id" db:"session_id"` QuestionID string `json:"question_id" db:"question_id"` AttemptNumber int `json:"attempt_number" db:"attempt_number"` SubmittedAnswer string `json:"submitted_answer" db:"submitted_answer"` IsCorrect bool `json:"is_correct" db:"is_correct"` UsedHint bool `json:"used_hint" db:"used_hint"` PointsAwarded int `json:"points_awarded" db:"points_awarded"` SubmittedAt time.Time `json:"submitted_at" db:"submitted_at"` TimeTakenMs int64 `json:"time_taken_ms" db:"time_taken_ms"` Metadata *string `json:"metadata" db:"metadata"` }