"""prd003_add_product_barcode

Adds barcode column to products table with per-merchant unique constraint.

Revision ID: prd003_add_product_barcode
Revises: txn002_add_deleted_at
Create Date: 2026-05-07
"""
from alembic import op
import sqlalchemy as sa

revision = "prd003_add_product_barcode"
down_revision = "txn002_add_deleted_at"
branch_labels = None
depends_on = None


def upgrade() -> None:
    op.add_column(
        "products",
        sa.Column("barcode", sa.String(12), nullable=True),
    )
    op.create_unique_constraint(
        "uq_product_merchant_barcode",
        "products",
        ["merchant_id", "barcode"],
    )


def downgrade() -> None:
    op.drop_constraint("uq_product_merchant_barcode", "products", type_="unique")
    op.drop_column("products", "barcode")
