"""conta do Plano de Contas que recebe a diferença do Desenvolve-BA

Revision ID: a9c1e3f5b7d9
Revises: f8b0d2e4a6c7
Create Date: 2026-10-31 16:00:00.000000

`icms_desenvolve.plano_de_contas_id`: a conta da DRE (em geral destinação de resultados → reservas) para onde vai o benefício do programa. Só roda
nos schemas de Planejamento (ver f1a9c3d7e284).
"""
from typing import Sequence, Union

import sqlalchemy as sa
from alembic import op


# revision identifiers, used by Alembic.
revision: str = 'a9c1e3f5b7d9'
down_revision: Union[str, None] = 'f8b0d2e4a6c7'
branch_labels: Union[str, Sequence[str], None] = None
depends_on: Union[str, Sequence[str], None] = None


def _no_schema_comum() -> bool:
    contexto = op.get_context()
    return contexto.dialect.name == 'postgresql' and contexto.version_table_schema is None


def upgrade() -> None:
    if _no_schema_comum():
        return
    op.add_column('icms_desenvolve', sa.Column('plano_de_contas_id', sa.Integer(), nullable=True))
    op.create_foreign_key('icms_desenvolve_plano_de_contas_id_fkey', 'icms_desenvolve', 'plano_de_contas', ['plano_de_contas_id'], ['id'])


def downgrade() -> None:
    if _no_schema_comum():
        return
    op.drop_constraint('icms_desenvolve_plano_de_contas_id_fkey', 'icms_desenvolve', type_='foreignkey')
    op.drop_column('icms_desenvolve', 'plano_de_contas_id')
