"""The client-facing quote builder: per-line selections and submitted requests.

Revision ID: b0c1d2e3f4a5
Revises: a9b0c1d2e3f4
Create Date: 2026-09-01
"""

import sqlalchemy as sa

from alembic import op

revision = "b0c1d2e3f4a5"
down_revision = "a9b0c1d2e3f4"
branch_labels = None
depends_on = None


def upgrade() -> None:
    op.create_table(
        "quote_selections",
        sa.Column("id", sa.Integer(), primary_key=True),
        sa.Column("item_key", sa.String(64), nullable=False, unique=True),
        sa.Column("included", sa.Boolean(), nullable=False),
        sa.Column("author", sa.String(80), nullable=False),
        sa.Column("created_at", sa.DateTime(timezone=True), nullable=False,
                  server_default=sa.func.now()),
        sa.Column("updated_at", sa.DateTime(timezone=True), nullable=False,
                  server_default=sa.func.now()),
    )
    op.create_table(
        "quote_requests",
        sa.Column("id", sa.Integer(), primary_key=True),
        sa.Column("author", sa.String(80), nullable=False),
        sa.Column("note", sa.String(2000)),
        sa.Column("items", sa.Text(), nullable=False),
        sa.Column("total_usd", sa.Integer(), nullable=False),
        sa.Column("created_at", sa.DateTime(timezone=True), nullable=False,
                  server_default=sa.func.now()),
    )


def downgrade() -> None:
    op.drop_table("quote_requests")
    op.drop_table("quote_selections")
