"""
Database tables (SQLModel) and HTTP request/response shapes (Pydantic).

Split into topical modules for readability, but every symbol is re-exported
from this package so ``from decnet.web.db.models import X`` keeps working
everywhere — no importer needs to know which submodule a class lives in.
"""
from ._base import (
    NullableDatetime,
    NullableString,
    _BIG_TEXT,
    _normalize_null,
)
from .common import (
    MessageResponse,
)
from .auth import (
    AdminConfigResponse,
    ChangePasswordRequest,
    ConfigResponse,
    CreateUserRequest,
    DeploymentLimitRequest,
    GlobalMutationIntervalRequest,
    LoginRequest,
    ResetUserPasswordRequest,
    Token,
    UpdateUserRoleRequest,
    User,
    UserResponse,
)
from .attackers import (
    Attacker,
    AttackerBehavior,
    AttackersResponse,
    SessionProfile,
    SmtpTarget,
)
from .deploy import (
    DeployIniRequest,
    DeployResponse,
    MutateIntervalRequest,
    PurgeResponse,
)
from .health import (
    ComponentHealth,
    HealthResponse,
)
from .logs import (
    Bounty,
    BountyResponse,
    Log,
    LogsResponse,
    State,
    StatsResponse,
)
from .swarm import (
    DeckyShard,
    DeckyShardView,
    SwarmCheckResponse,
    SwarmDeployRequest,
    SwarmDeployResponse,
    SwarmEnrolledBundle,
    SwarmEnrollRequest,
    SwarmHost,
    SwarmHostHealth,
    SwarmHostResult,
    SwarmHostView,
    SwarmTeardownRequest,
    SwarmUpdaterBundle,
)
from .topology import (
    LAN,
    ArchetypeCatalogResponse,
    ArchetypeEntry,
    DeckyCreateRequest,
    DeckyRow,
    DeckyUpdateRequest,
    DeployAcceptedResponse,
    EdgeCreateRequest,
    EdgeRow,
    LANCreateRequest,
    LANRow,
    LANUpdateRequest,
    MutationEnqueueRequest,
    MutationEnqueueResponse,
    MutationRow,
    NextIPResponse,
    NextSubnetResponse,
    NotEditableResponse,
    ReapReportResponse,
    ServiceCatalogResponse,
    Topology,
    TopologyDecky,
    TopologyDetail,
    TopologyEdge,
    TopologyGenerateRequest,
    TopologyListResponse,
    TopologyMutation,
    TopologyStatusEvent,
    TopologyStatusEventRow,
    TopologySummary,
    ValidationErrorResponse,
    ValidationIssueResponse,
    VersionConflictResponse,
)
from .updater import (
    HostReleaseInfo,
    HostReleasesResponse,
    PushUpdateRequest,
    PushUpdateResponse,
    PushUpdateResult,
    RollbackRequest,
    RollbackResponse,
)
from .webhooks import (
    SimpleEvent,
    WebhookCreateRequest,
    WebhookCreateResponse,
    WebhookResponse,
    WebhookSubscription,
    WebhookTestResponse,
    WebhookUpdateRequest,
)
from .workers import (
    StartAllResponse,
    StartFailure,
    WorkerControlResponse,
    WorkersResponse,
    WorkerStatus,
)

__all__ = [
    # _base
    "NullableDatetime",
    "NullableString",
    "_BIG_TEXT",
    "_normalize_null",
    # common
    "MessageResponse",
    # auth
    "AdminConfigResponse",
    "ChangePasswordRequest",
    "ConfigResponse",
    "CreateUserRequest",
    "DeploymentLimitRequest",
    "GlobalMutationIntervalRequest",
    "LoginRequest",
    "ResetUserPasswordRequest",
    "Token",
    "UpdateUserRoleRequest",
    "User",
    "UserResponse",
    # attackers
    "Attacker",
    "AttackerBehavior",
    "AttackersResponse",
    "SessionProfile",
    "SmtpTarget",
    # deploy
    "DeployIniRequest",
    "DeployResponse",
    "MutateIntervalRequest",
    "PurgeResponse",
    # health
    "ComponentHealth",
    "HealthResponse",
    # logs
    "Bounty",
    "BountyResponse",
    "Log",
    "LogsResponse",
    "State",
    "StatsResponse",
    # swarm
    "DeckyShard",
    "DeckyShardView",
    "SwarmCheckResponse",
    "SwarmDeployRequest",
    "SwarmDeployResponse",
    "SwarmEnrolledBundle",
    "SwarmEnrollRequest",
    "SwarmHost",
    "SwarmHostHealth",
    "SwarmHostResult",
    "SwarmHostView",
    "SwarmTeardownRequest",
    "SwarmUpdaterBundle",
    # topology
    "LAN",
    "ArchetypeCatalogResponse",
    "ArchetypeEntry",
    "DeckyCreateRequest",
    "DeckyRow",
    "DeckyUpdateRequest",
    "DeployAcceptedResponse",
    "EdgeCreateRequest",
    "EdgeRow",
    "LANCreateRequest",
    "LANRow",
    "LANUpdateRequest",
    "MutationEnqueueRequest",
    "MutationEnqueueResponse",
    "MutationRow",
    "NextIPResponse",
    "NextSubnetResponse",
    "NotEditableResponse",
    "ReapReportResponse",
    "ServiceCatalogResponse",
    "Topology",
    "TopologyDecky",
    "TopologyDetail",
    "TopologyEdge",
    "TopologyGenerateRequest",
    "TopologyListResponse",
    "TopologyMutation",
    "TopologyStatusEvent",
    "TopologyStatusEventRow",
    "TopologySummary",
    "ValidationErrorResponse",
    "ValidationIssueResponse",
    "VersionConflictResponse",
    # updater
    "HostReleaseInfo",
    "HostReleasesResponse",
    "PushUpdateRequest",
    "PushUpdateResponse",
    "PushUpdateResult",
    "RollbackRequest",
    "RollbackResponse",
    # webhooks
    "SimpleEvent",
    "WebhookCreateRequest",
    "WebhookCreateResponse",
    "WebhookResponse",
    "WebhookSubscription",
    "WebhookTestResponse",
    "WebhookUpdateRequest",
    # workers
    "StartAllResponse",
    "StartFailure",
    "WorkerControlResponse",
    "WorkersResponse",
    "WorkerStatus",
]
