"""
Classroom Engine - State Machine fuer Unterrichtsphasen

Dieses Package implementiert eine Finite State Machine fuer die
Steuerung von Unterrichtsstunden mit 5 Phasen:

1. Einstieg (8 Min) - Motivation, Problemstellung
2. Erarbeitung (20 Min) - Hauptarbeitsphase
3. Sicherung (10 Min) - Ergebnisse festhalten
4. Transfer (7 Min) - Anwendung
5. Reflexion (5 Min) - Rueckblick, Hausaufgaben

Features:
- Phasen-Timer mit Countdown und Warnungen
- Phasenspezifische Content-Vorschlaege
- Session-History fuer Analytics
"""

from .models import (
    LessonPhase,
    PhaseConfig,
    LessonSession,
    LessonTemplate,
    PhaseSuggestion,
    Homework,
    HomeworkStatus,
    PhaseMaterial,
    MaterialType,
    LESSON_PHASES,
    SYSTEM_TEMPLATES,
    get_default_durations,
)
from .fsm import LessonStateMachine
from .timer import PhaseTimer
from .suggestions import SuggestionEngine
from .suggestion_data import PHASE_SUGGESTIONS, SUBJECT_SUGGESTIONS
from .context_models import (
    MacroPhaseEnum,
    EventTypeEnum,
    EventStatusEnum,
    RoutineTypeEnum,
    RecurrencePatternEnum,
    TeacherContextDB,
    SchoolyearEventDB,
    RecurringRoutineDB,
    FEDERAL_STATES,
    SCHOOL_TYPES,
)
from .antizipation import (
    SignalCollector,
    RuleEngine,
    SuggestionGenerator,
    Signals,
    Suggestion,
    SuggestionTone,
    ActiveContext,
    ContextType,
)
from .analytics import LessonReflection

__all__ = [
    "LessonPhase",
    "PhaseConfig",
    "LessonSession",
    "LessonTemplate",
    "PhaseSuggestion",
    "Homework",
    "HomeworkStatus",
    "PhaseMaterial",
    "MaterialType",
    "LESSON_PHASES",
    "SYSTEM_TEMPLATES",
    "get_default_durations",
    "LessonStateMachine",
    "PhaseTimer",
    "SuggestionEngine",
    "PHASE_SUGGESTIONS",
    "SUBJECT_SUGGESTIONS",
    # Phase 8: Schuljahres-Kontext
    "MacroPhaseEnum",
    "EventTypeEnum",
    "EventStatusEnum",
    "RoutineTypeEnum",
    "RecurrencePatternEnum",
    "TeacherContextDB",
    "SchoolyearEventDB",
    "RecurringRoutineDB",
    "FEDERAL_STATES",
    "SCHOOL_TYPES",
    # Analytics
    "LessonReflection",
]
