"""Import every model module so SQLAlchemy's mapper registry is fully populated
before any relationship/ForeignKey string reference is resolved."""

from app.core.database import Base
from app.models.access import PageVersion, RecordAccessPolicy
from app.models.audit import AiAssistantSession, AuditLogEntry
from app.models.data_query import DataQuery
from app.models.entity_storage import EntityMigration, EntityTable
from app.models.report_template import ReportTemplate
from app.models.saved_view import SavedView
from app.models.form_verification import FormVerification
from app.models.public_data import PublicDataSource
from app.models.automation import Task
from app.models.identity import LicenseFile, LicenseRequest, Role, Tenant, User, UserRole, UserSession, Vendor
from app.models.master import Master, MasterRecord
from app.models.navigation import Dashboard, DashboardRole, Menu, MenuRole, Page, Widget
from app.models.notification import Notification
from app.models.platform_admin import PlatformAdmin
from app.models.release import Release
from app.models.reporting import Connector, Report
from app.models.secret import Secret
from app.models.upload import UploadedFile
from app.models.workflow import (
    Form,
    FormSubmission,
    StepHistory,
    Workflow,
    WorkflowDelegation,
    WorkflowInstance,
    WorkflowStepForm,
)

__all__ = [
    "Base",
    "EntityMigration",
    "EntityTable",
    "PageVersion",
    "RecordAccessPolicy",
    "Tenant",
    "Vendor",
    "User",
    "LicenseFile",
    "LicenseRequest",
    "UserSession",
    "Role",
    "UserRole",
    "Master",
    "MasterRecord",
    "Workflow",
    "Form",
    "WorkflowStepForm",
    "WorkflowDelegation",
    "WorkflowInstance",
    "StepHistory",
    "FormSubmission",
    "Menu",
    "MenuRole",
    "Dashboard",
    "DashboardRole",
    "Widget",
    "Page",
    "Report",
    "Connector",
    "Secret",
    "DataQuery",
    "ReportTemplate",
    "SavedView",
    "Notification",
    "UploadedFile",
    "Release",
    "AuditLogEntry",
    "AiAssistantSession",
    "Task",
    "PlatformAdmin",
]
