""" Quiz Models - Datenmodelle fuer Quiz-Generierung. Enthaelt alle Dataclasses und Enums fuer Quiz-Typen: - True/False Fragen - Zuordnungsaufgaben (Matching) - Sortieraufgaben - Offene Fragen """ from typing import List, Any, Optional from dataclasses import dataclass from enum import Enum class QuizType(str, Enum): """Typen von Quiz-Aufgaben.""" TRUE_FALSE = "true_false" MATCHING = "matching" SORTING = "sorting" OPEN_ENDED = "open_ended" @dataclass class TrueFalseQuestion: """Eine Wahr/Falsch-Frage.""" statement: str is_true: bool explanation: str source_reference: Optional[str] = None @dataclass class MatchingPair: """Ein Zuordnungspaar.""" left: str right: str hint: Optional[str] = None @dataclass class SortingItem: """Ein Element zum Sortieren.""" text: str correct_position: int category: Optional[str] = None @dataclass class OpenQuestion: """Eine offene Frage.""" question: str model_answer: str keywords: List[str] points: int = 1 @dataclass class Quiz: """Ein komplettes Quiz.""" quiz_type: QuizType title: str questions: List[Any] # Je nach Typ unterschiedlich topic: Optional[str] = None difficulty: str = "medium"