"""Add cost_price to cart_session_items and required_fields to merchant_widget_keys

Revision ID: cart003_cost_price_required_fields
Revises: cart002_catalog_enabled
Create Date: 2026-04-23
"""
from alembic import op
import sqlalchemy as sa

revision = 'cart003_cost_req'
down_revision = 'cart002_catalog_enabled'
branch_labels = None
depends_on = None


def upgrade() -> None:
    # cost_price stored in integer cents (nullable — optional for merchants)
    op.add_column(
        'cart_session_items',
        sa.Column('cost_price', sa.Integer(), nullable=True),
    )
    # JSON array of field names that are required at checkout
    # e.g. ["phone", "address", "zip"]  — name and email are always required
    op.add_column(
        'merchant_widget_keys',
        sa.Column('required_fields', sa.JSON(), nullable=True),
    )


def downgrade() -> None:
    op.drop_column('cart_session_items', 'cost_price')
    op.drop_column('merchant_widget_keys', 'required_fields')
