"""SQLAlchemy ORM model definitions for all database tables."""
# Import all models here so Alembic can detect them
from app.models.audit import AuditLog
from app.models.notification import Notification
from app.models.data_source import DataSource
from app.models.detection_rule import DetectionRule
from app.models.threat_actor import ThreatActor, ThreatActorTechnique
from app.models.defensive_technique import DefensiveTechnique, DefensiveTechniqueMapping
from app.models.test_template_detection_rule import TestTemplateDetectionRule
from app.models.test_detection_result import TestDetectionResult
from app.models.campaign import Campaign, CampaignTest, CampaignModificationRequest
from app.models.compliance import ComplianceFramework, ComplianceControl, ComplianceControlMapping
from app.models.coverage_snapshot import CoverageSnapshot, SnapshotTechniqueState
from app.models.jira_link import JiraLink, JiraLinkEntityType, JiraSyncDirection
from app.models.worklog import Worklog
from app.models.osint_item import OsintItem
from app.models.scoring_config import ScoringConfig
from app.models.enums import TechniqueStatus, TestState, TestResult, TeamSide
from app.models.webhook_config import WebhookConfig
from app.models.system_config import SystemConfig
from app.models.detection_lifecycle import (
    DetectionAsset, DetectionTechniqueMapping, DetectionValidation,
    TechniqueConfidenceScore, InfrastructureChangeLog,
    DetectionConfidence, DetectionHealthStatus, InvalidationReason,
)
from app.models.decay_policy import DecayPolicy
from app.models.ownership_queue import (
    TechniqueOwnership, RevalidationQueueItem,
    QueuePriority, QueueStatus, QueueReason,
)
from app.models.attack_path import (
    AttackPath, AttackPathStep, AttackPathExecution,
    AttackPathStepResult, TimelineEntry,
    ExecutionStatus, StepResultStatus, TimelineActorSide, TimelineEntryType,
)
from app.models.knowledge import Playbook, PlaybookVersion, LessonLearned
from app.models.risk_intelligence import TechniqueRiskProfile
from app.models.executive_dashboard import PostureSnapshot
from app.models.api_key import ApiKey
from app.models.sso_config import SsoConfig
from app.models.operational_alert import AlertRule, AlertInstance
from app.models.evidence import Evidence
from app.models.intel import IntelItem
from app.models.technique import Technique
from app.models.test import Test
from app.models.test_template import TestTemplate
from app.models.user import User

# Assign __all__ = [
__all__ = [
    # Literal argument value
    "User", "Technique", "Test", "TestTemplate", "Evidence",
    # Literal argument value
    "IntelItem", "AuditLog", "Notification", "DataSource",
    # Literal argument value
    "DetectionRule", "ThreatActor", "ThreatActorTechnique",
    # Literal argument value
    "DefensiveTechnique", "DefensiveTechniqueMapping",
    # Literal argument value
    "TestTemplateDetectionRule", "TestDetectionResult",
    # Literal argument value
    "Campaign", "CampaignTest", "CampaignModificationRequest",
    # Literal argument value
    "ComplianceFramework", "ComplianceControl", "ComplianceControlMapping",
    # Literal argument value
    "CoverageSnapshot", "SnapshotTechniqueState",
    # Literal argument value
    "JiraLink", "JiraLinkEntityType", "JiraSyncDirection",
    # Literal argument value
    "Worklog", "OsintItem", "ScoringConfig",
    # Literal argument value
    "TechniqueStatus", "TestState", "TestResult", "TeamSide",
    "WebhookConfig", "SystemConfig",
    "DetectionAsset", "DetectionTechniqueMapping", "DetectionValidation",
    "TechniqueConfidenceScore", "InfrastructureChangeLog",
    "DetectionConfidence", "DetectionHealthStatus", "InvalidationReason", "DecayPolicy",
    "TechniqueOwnership", "RevalidationQueueItem",
    "QueuePriority", "QueueStatus", "QueueReason",
    "AttackPath", "AttackPathStep", "AttackPathExecution",
    "AttackPathStepResult", "TimelineEntry",
    "ExecutionStatus", "StepResultStatus", "TimelineActorSide", "TimelineEntryType",
    "Playbook", "PlaybookVersion", "LessonLearned",
    "TechniqueRiskProfile",
    "PostureSnapshot",
    "ApiKey",
    "SsoConfig",
    "AlertRule",
    "AlertInstance",
]
