"""创建 Analytics 库基础表。"""

from alembic import op

from zbt.infrastructure.mysql.analytics_models import AnalyticsBase

revision = "analytics_0001"
down_revision = None
branch_labels = None
depends_on = None

TABLE_NAMES = (
    "dim_date",
    "dim_product",
    "dim_salesperson",
    "fact_orders",
    "fact_policies",
    "metric_definitions",
    "analytics_sync_offsets",
)


def upgrade() -> None:
    bind = op.get_bind()
    for table in AnalyticsBase.metadata.sorted_tables:
        if table.name in TABLE_NAMES:
            table.create(bind=bind)


def downgrade() -> None:
    bind = op.get_bind()
    for table in reversed(AnalyticsBase.metadata.sorted_tables):
        if table.name in TABLE_NAMES:
            table.drop(bind=bind)
