"""Add connection_id to channel_sku_mapping for per-connection SKU aliases.

Revision ID: 0034_add_channel_sku_mapping_connection_id
Revises: 0033_add_master_static_field_mapping
Create Date: 2026-06-12 22:00:00.000000
"""

from __future__ import annotations

from alembic import op
import sqlalchemy as sa

revision = "0034_add_channel_sku_mapping_connection_id"
down_revision = "0033_add_master_static_field_mapping"
branch_labels = None
depends_on = None


def upgrade() -> None:
    op.add_column("channel_sku_mapping", sa.Column("connection_id", sa.Integer(), nullable=True))
    op.create_index("ix_channel_sku_mapping_connection_id", "channel_sku_mapping", ["connection_id"])
    op.create_index(
        "uq_channel_sku_mapping_master_connection",
        "channel_sku_mapping",
        ["master_sku", "connection_id"],
        unique=True,
        postgresql_where=sa.text("connection_id IS NOT NULL"),
    )


def downgrade() -> None:
    op.drop_index("uq_channel_sku_mapping_master_connection", table_name="channel_sku_mapping")
    op.drop_index("ix_channel_sku_mapping_connection_id", table_name="channel_sku_mapping")
    op.drop_column("channel_sku_mapping", "connection_id")
