"""Add campaign display fields. Revision ID: 0003_campaign_display_fields Revises: 0002_add_map_image Create Date: 2026-07-02 """ from alembic import op import sqlalchemy as sa from sqlalchemy import inspect from sqlalchemy.dialects import postgresql revision = "0003_campaign_display_fields" down_revision = "0002_add_map_image" branch_labels = None depends_on = None def upgrade() -> None: bind = op.get_bind() if "Campaign" not in set(inspect(bind).get_table_names()): return columns = {column["name"] for column in inspect(bind).get_columns("Campaign")} if "priceAmount" not in columns: op.add_column("Campaign", sa.Column("priceAmount", sa.Integer(), nullable=True)) if "priceUnit" not in columns: op.add_column("Campaign", sa.Column("priceUnit", sa.String(), nullable=True)) if "tags" not in columns: op.add_column( "Campaign", sa.Column( "tags", postgresql.ARRAY(sa.String()), nullable=False, server_default=sa.text("'{}'::varchar[]"), ), ) def downgrade() -> None: bind = op.get_bind() if "Campaign" not in set(inspect(bind).get_table_names()): return columns = {column["name"] for column in inspect(bind).get_columns("Campaign")} if "tags" in columns: op.drop_column("Campaign", "tags") if "priceUnit" in columns: op.drop_column("Campaign", "priceUnit") if "priceAmount" in columns: op.drop_column("Campaign", "priceAmount")