"""rev_f - Phase 4 expense v2 columns (approval, branch validated, attachment, recurring)

Revision ID: 0006_rev_f
Revises: 0005_rev_c
Create Date: 2026-09-22
"""
from alembic import op
import sqlalchemy as sa

revision = "0006_rev_f"
down_revision = "0005_rev_c"
branch_labels = None
depends_on = None


def upgrade() -> None:
    op.add_column("expenses", sa.Column("approval_status", sa.String(length=20),
                                        server_default="approved", nullable=False))
    op.add_column("expenses", sa.Column("approved_by", sa.String(length=36), nullable=True))
    op.add_column("expenses", sa.Column("approved_at", sa.DateTime(), nullable=True))
    op.add_column("expenses", sa.Column("attachment_path", sa.String(length=255), nullable=True))
    op.add_column("expenses", sa.Column("recurring", sa.Boolean(), server_default=sa.text("false"), nullable=False))
    op.add_column("expenses", sa.Column("recurring_frequency", sa.String(length=20),
                                        server_default="monthly", nullable=False))
    op.add_column("expenses", sa.Column("recurring_until", sa.Date(), nullable=True))


def downgrade() -> None:
    op.drop_column("expenses", "recurring_until")
    op.drop_column("expenses", "recurring_frequency")
    op.drop_column("expenses", "recurring")
    op.drop_column("expenses", "attachment_path")
    op.drop_column("expenses", "approved_at")
    op.drop_column("expenses", "approved_by")
    op.drop_column("expenses", "approval_status")