"""Pydantic domain models for campaigns, missions, modules, and related entities.

All models use Pydantic v2 with:
- int | None = None for database IDs (None until persisted)
- datetime | None = None for timestamps (set by repository layer)
- Enum fields using StrEnum types from constants.py
- Forward-compatible v1.1 fields included with defaults
"""

from unfamiliar.models.analysis import FileSnapshot, Module
from unfamiliar.models.campaign import Briefing, Campaign
from unfamiliar.models.mission import (
    ChainMissionLink,
    Mission,
    MissionChain,
    MissionFileRef,
    ModuleMissionLink,
)

__all__ = [
    "Briefing",
    "Campaign",
    "ChainMissionLink",
    "FileSnapshot",
    "Mission",
    "MissionChain",
    "MissionFileRef",
    "Module",
    "ModuleMissionLink",
]
