"""
Klausurkorrektur Module - Privacy-by-Design Exam Correction.

DSGVO-compliant exam correction with QR-code based pseudonymization.
No personal data is sent to the LLM.

Architecture:
- Pseudonymization via doc_token (128-bit UUID)
- Teacher namespace isolation
- Self-hosted LLM at SysEleven
- Zero-knowledge identity mapping (encrypted client-side)
"""

from .db_models import (
    ExamSession, PseudonymizedDocument, QRBatchJob,
    SessionStatus, DocumentStatus,
    # Magic Onboarding
    OnboardingSession, DetectedStudent, ModuleLink,
    OnboardingStatus, ModuleLinkType
)
from .repository import KlausurRepository
from .database import get_db, init_db

# Services
from .services.roster_parser import RosterParser, get_roster_parser
from .services.school_resolver import SchoolResolver, get_school_resolver
from .services.module_linker import ModuleLinker, get_module_linker

__all__ = [
    # Models
    "ExamSession",
    "PseudonymizedDocument",
    "QRBatchJob",
    "SessionStatus",
    "DocumentStatus",
    # Magic Onboarding Models
    "OnboardingSession",
    "DetectedStudent",
    "ModuleLink",
    "OnboardingStatus",
    "ModuleLinkType",
    # Repository
    "KlausurRepository",
    # Database
    "get_db",
    "init_db",
    # Services
    "RosterParser",
    "get_roster_parser",
    "SchoolResolver",
    "get_school_resolver",
    "ModuleLinker",
    "get_module_linker",
]
