"""
Import every model module here so `Base.metadata` is fully populated for Alembic autogenerate
and for a single `from app.models import Base` import point elsewhere in the app.
"""
from app.models.base import Base, TimestampMixin
from app.models.reference import Country, Exchange, Industry, Sector
from app.models.companies import Company, Security
from app.models.financials import (
    BalanceSheet, Buyback, CashFlow, Dividend, Estimate, FinancialPeriod, Guidance,
    IncomeStatement, Shares,
)
from app.models.market import CorporateAction, Price
from app.models.governance import AuditLogEntry, DataQuality, RevokedToken, Source, User
from app.models.derived import Metric, MetricHistory, Score, Valuation
from app.models.user_facing import (
    Alert, AlertEventLog, EmergingClassification, Portfolio, PortfolioPosition, ScreenResult,
    Screener, Watchlist, WatchlistItem,
)

__all__ = [
    "Base", "TimestampMixin",
    "Country", "Exchange", "Industry", "Sector",
    "Company", "Security",
    "BalanceSheet", "Buyback", "CashFlow", "Dividend", "Estimate", "FinancialPeriod", "Guidance",
    "IncomeStatement", "Shares",
    "CorporateAction", "Price",
    "AuditLogEntry", "DataQuality", "RevokedToken", "Source", "User",
    "Metric", "MetricHistory", "Score", "Valuation",
    "Alert", "AlertEventLog", "EmergingClassification", "Portfolio", "PortfolioPosition",
    "ScreenResult", "Screener", "Watchlist", "WatchlistItem",
]
