"""CFO RBAC: add is_admin to users table

Revision ID: 000000000006
Revises: 000000000005
Create Date: 2026-02-11

Adds is_admin column to users table (formerly user_profiles in the legacy
Node.js stack, merged into users in the Python rewrite). This provides
a fast-path admin check for CFO-specific routes without joining
user_applications.
"""

from alembic import op

revision = "000000000006"
down_revision = "000000000005"
branch_labels = None
depends_on = None


def upgrade() -> None:
    op.execute("""
        ALTER TABLE users
        ADD COLUMN IF NOT EXISTS is_admin BOOLEAN NOT NULL DEFAULT false;
    """)

    # Index for quick admin lookups
    op.execute("""
        CREATE INDEX IF NOT EXISTS idx_users_is_admin
        ON users (is_admin)
        WHERE is_admin = true;
    """)


def downgrade() -> None:
    op.execute("DROP INDEX IF EXISTS idx_users_is_admin;")
    op.execute("ALTER TABLE users DROP COLUMN IF EXISTS is_admin;")
