"""add vat_number and vat_validated to public.organizations for EU reverse-charge invoicing

Revision ID: vat001
Revises: hc42d5f3a8b1
Create Date: 2026-06-11
"""
from alembic import op
import sqlalchemy as sa

revision = 'vat001'
down_revision = 'hc42d5f3a8b1'
branch_labels = None
depends_on = None


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


def upgrade():
    # Guards: replayed by every fresh tenant's migration run — must be idempotent.
    conn = op.get_bind()
    if not _public_column_exists(conn, 'vat_number'):
        op.add_column(
            'organizations',
            sa.Column('vat_number', sa.String(30), nullable=True),
            schema='public',
        )
    if not _public_column_exists(conn, 'vat_validated'):
        op.add_column(
            'organizations',
            sa.Column('vat_validated', sa.Boolean(), nullable=False, server_default='false'),
            schema='public',
        )


def downgrade():
    op.drop_column('organizations', 'vat_validated', schema='public')
    op.drop_column('organizations', 'vat_number', schema='public')
