"""SQLAlchemy models — one file per aggregate (02-domain-model.md).

Import Base from here for metadata (alembic, tests); importing this
package registers every table on Base.metadata.
"""

from app.models.audit import AuditLog
from app.models.base import Base, PortableJSON
from app.models.cc import CcAutoRule, CcExpenseBatch, CcExpenseLine, CcHighlightKeyword
from app.models.comment import Comment
from app.models.engagement import CompensationTerm, Engagement, RateOverride
from app.models.expense import (
    ClientProfile,
    Expense,
    ProjectBilling,
    TenantVendor,
)
from app.models.invoice import Invoice, InvoiceLine
from app.models.migration_run import MigrationRun
from app.models.party import (
    Organization,
    Party,
    PartyAffiliation,
    Person,
    Tenant,
)
from app.models.pending_import import PendingImport
from app.models.project import Project, ProjectMilestone
from app.models.saved_view import SAVED_VIEW_PAGES, SavedView
from app.models.time_entry import ImportBatch, TimeEntry
from app.models.user import User

__all__ = [
    "AuditLog",
    "Base",
    "CcAutoRule",
    "CcExpenseBatch",
    "CcExpenseLine",
    "CcHighlightKeyword",
    "ClientProfile",
    "Comment",
    "CompensationTerm",
    "Engagement",
    "Expense",
    "ImportBatch",
    "Invoice",
    "InvoiceLine",
    "MigrationRun",
    "Organization",
    "Party",
    "PartyAffiliation",
    "PendingImport",
    "Person",
    "PortableJSON",
    "Project",
    "ProjectBilling",
    "ProjectMilestone",
    "RateOverride",
    "SAVED_VIEW_PAGES",
    "SavedView",
    "Tenant",
    "TenantVendor",
    "TimeEntry",
    "User",
]
