"""cadastro de verba de marketing

Revision ID: 986409c72046
Revises: 68cf68a02834
Create Date: 2026-09-17 23:55:00.000000

"""
from typing import Sequence, Union

from alembic import op
import sqlalchemy as sa


# revision identifiers, used by Alembic.
revision: str = '986409c72046'
down_revision: Union[str, None] = '68cf68a02834'
branch_labels: Union[str, Sequence[str], None] = None
depends_on: Union[str, Sequence[str], None] = None


def upgrade() -> None:
    op.create_table(
        'verba_marketing',
        sa.Column('id', sa.Integer(), nullable=False),
        sa.Column('codigo', sa.String(length=20), nullable=False),
        sa.Column('plano_de_contas_id', sa.Integer(), nullable=False),
        sa.Column('centro_de_custo_id', sa.Integer(), nullable=False),
        sa.Column('competencia', sa.Date(), nullable=False),
        sa.Column('valor', sa.Numeric(precision=14, scale=6), nullable=False),
        sa.Column('descricao', sa.String(length=500), nullable=True),
        sa.ForeignKeyConstraint(['plano_de_contas_id'], ['plano_de_contas.id'], ),
        sa.ForeignKeyConstraint(['centro_de_custo_id'], ['centro_de_custo.id'], ),
        sa.PrimaryKeyConstraint('id'),
        sa.UniqueConstraint('codigo'),
    )
    op.create_table(
        'verba_marketing_produto',
        sa.Column('id', sa.Integer(), nullable=False),
        sa.Column('verba_marketing_id', sa.Integer(), nullable=False),
        sa.Column('produto_id', sa.Integer(), nullable=False),
        sa.ForeignKeyConstraint(['verba_marketing_id'], ['verba_marketing.id'], ),
        sa.ForeignKeyConstraint(['produto_id'], ['produto.id'], ),
        sa.PrimaryKeyConstraint('id'),
        sa.UniqueConstraint('verba_marketing_id', 'produto_id', name='uq_verba_marketing_produto'),
    )


def downgrade() -> None:
    op.drop_table('verba_marketing_produto')
    op.drop_table('verba_marketing')
