"""add public.users.signatures_json for per-language reply signatures (Premium+)

Revision ID: sig001
Revises: psh001
Create Date: 2026-07-01
"""
from alembic import op
import sqlalchemy as sa

revision = 'sig001'
down_revision = 'psh001'
branch_labels = None
depends_on = None


def _public_column_exists(conn, table, column):
    return conn.execute(sa.text(
        "SELECT 1 FROM information_schema.columns "
        "WHERE table_schema='public' AND table_name=:t AND column_name=:c"
    ), {"t": table, "c": column}).fetchone() is not None


def upgrade():
    conn = op.get_bind()
    if _public_column_exists(conn, 'users', 'signatures_json'):
        return
    # JSON map of {language_code: signature_html}. NULL for free/mono users;
    # populated only when a Premium+ user adds language variants.
    op.add_column('users', sa.Column('signatures_json', sa.Text(), nullable=True),
                  schema='public')


def downgrade():
    op.drop_column('users', 'signatures_json', schema='public')
