"""add unique constraints for custom_subdomain and store domain per platform

Revision ID: z_unique_subdomain_domain
Revises: a44f4956cfb1
Create Date: 2026-02-26
"""
from alembic import op

revision = "z_unique_subdomain_domain"
down_revision = ("a44f4956cfb1", "tenancy_003")
branch_labels = None
depends_on = None


def upgrade() -> None:
    # StorePlatform: same custom_subdomain cannot be claimed twice on the same platform
    op.create_unique_constraint(
        "uq_custom_subdomain_platform",
        "store_platforms",
        ["custom_subdomain", "platform_id"],
    )

    # StoreDomain: a store can have at most one custom domain per platform
    op.create_unique_constraint(
        "uq_store_domain_platform",
        "store_domains",
        ["store_id", "platform_id"],
    )


def downgrade() -> None:
    op.drop_constraint("uq_store_domain_platform", "store_domains", type_="unique")
    op.drop_constraint("uq_custom_subdomain_platform", "store_platforms", type_="unique")
