"""Align purchase order statuses with workflow.

Revision ID: 016_po_workflow
Revises: 015_purchase_order_form
Create Date: 2026-08-06
"""

from typing import Sequence, Union

import sqlalchemy as sa
from alembic import op

revision: str = "016_po_workflow"
down_revision: Union[str, None] = "015_purchase_order_form"
branch_labels: Union[str, Sequence[str], None] = None
depends_on: Union[str, Sequence[str], None] = None


def upgrade() -> None:
    # Backfill old status names into new workflow names.
    op.execute(
        sa.text(
            """
            UPDATE purchase_orders
            SET status = CASE status
                WHEN 'draft' THEN 'pending'
                WHEN 'submitted' THEN 'confirmed'
                WHEN 'approved' THEN 'confirmed'
                ELSE status
            END
            """
        )
    )


def downgrade() -> None:
    op.execute(
        sa.text(
            """
            UPDATE purchase_orders
            SET status = CASE status
                WHEN 'pending' THEN 'draft'
                WHEN 'confirmed' THEN 'approved'
                ELSE status
            END
            """
        )
    )
