"""rev_b - inventory transaction cost attribution

Revision ID: 0004_rev_b
Revises: 0003_rev_d
Create Date: 2026-09-22
"""
from alembic import op
import sqlalchemy as sa

revision = "0004_rev_b"
down_revision = "0003_rev_d"
branch_labels = None
depends_on = None


def upgrade() -> None:
    op.add_column("inventory_transactions", sa.Column("unit_cost", sa.Numeric(18, 2), nullable=True))
    op.add_column("inventory_transactions", sa.Column("value", sa.Numeric(18, 2), nullable=True))
    op.add_column("inventory_transactions", sa.Column("branch_id", sa.String(length=36), nullable=True))
    op.add_column("inventory_transactions", sa.Column("lot_id", sa.String(length=36), nullable=True))
    op.add_column("inventory_transactions", sa.Column("journal_entry_id", sa.String(length=36), nullable=True))
    op.create_index("ix_inventory_transactions_branch_id", "inventory_transactions", ["branch_id"])
    op.create_index("ix_inventory_transactions_lot_id", "inventory_transactions", ["lot_id"])
    op.create_index("ix_inventory_transactions_journal_entry_id", "inventory_transactions", ["journal_entry_id"])


def downgrade() -> None:
    op.drop_index("ix_inventory_transactions_journal_entry_id", table_name="inventory_transactions")
    op.drop_index("ix_inventory_transactions_lot_id", table_name="inventory_transactions")
    op.drop_index("ix_inventory_transactions_branch_id", table_name="inventory_transactions")
    op.drop_column("inventory_transactions", "journal_entry_id")
    op.drop_column("inventory_transactions", "lot_id")
    op.drop_column("inventory_transactions", "branch_id")
    op.drop_column("inventory_transactions", "value")
    op.drop_column("inventory_transactions", "unit_cost")