package question import "time" // Difficulty represents the question difficulty level. type Difficulty string const ( DifficultyEasy Difficulty = "easy" DifficultyMedium Difficulty = "medium" DifficultyHard Difficulty = "hard" ) // Question represents a question aggregate root. type Question struct { ID string Theme string Text string Answer string Hint string Difficulty Difficulty IsActive bool CreatedAt time.Time UpdatedAt time.Time } // RandomFilter defines supported filters for random question retrieval. type RandomFilter struct { ExcludeQuestionIDs []string Theme string Difficulty Difficulty } // IsValidDifficulty checks whether difficulty is supported. func IsValidDifficulty(d Difficulty) bool { switch d { case DifficultyEasy, DifficultyMedium, DifficultyHard: return true default: return false } }