"""
Klausur-Service Models

Data models for exams, students, grading, and Erwartungshorizont.
"""

from .enums import KlausurModus, StudentKlausurStatus, EHStatus
from .exam import Klausur, StudentKlausur
from .grading import AuditLogEntry, GRADE_THRESHOLDS, GRADE_LABELS, DEFAULT_CRITERIA
from .eh import (
    Erwartungshorizont,
    EHRightsConfirmation,
    EHAuditLogEntry,
    EHKeyShare,
    EHKlausurLink,
    EHShareInvitation,
)
from .requests import (
    KlausurCreate,
    KlausurUpdate,
    StudentUpload,
    CriterionScoreUpdate,
    GutachtenUpdate,
    ExaminerAssignment,
    ExaminerResult,
    GutachtenGenerateRequest,
    EHMetadata,
    EHUploadMetadata,
    EHRAGQuery,
    EHIndexRequest,
    EHShareRequest,
    EHLinkKlausurRequest,
    EHInviteRequest,
    EHAcceptInviteRequest,
)

__all__ = [
    # Enums
    "KlausurModus",
    "StudentKlausurStatus",
    "EHStatus",
    # Exam Models
    "Klausur",
    "StudentKlausur",
    # Grading
    "AuditLogEntry",
    "GRADE_THRESHOLDS",
    "GRADE_LABELS",
    "DEFAULT_CRITERIA",
    # EH Models
    "Erwartungshorizont",
    "EHRightsConfirmation",
    "EHAuditLogEntry",
    "EHKeyShare",
    "EHKlausurLink",
    "EHShareInvitation",
    # Request Models
    "KlausurCreate",
    "KlausurUpdate",
    "StudentUpload",
    "CriterionScoreUpdate",
    "GutachtenUpdate",
    "ExaminerAssignment",
    "ExaminerResult",
    "GutachtenGenerateRequest",
    "EHMetadata",
    "EHUploadMetadata",
    "EHRAGQuery",
    "EHIndexRequest",
    "EHShareRequest",
    "EHLinkKlausurRequest",
    "EHInviteRequest",
    "EHAcceptInviteRequest",
]
