"""Temporary pre-auth builder drafts.

Revision ID: 085
Revises: 084
"""
from alembic import op
import sqlalchemy as sa
from sqlalchemy.dialects import postgresql

revision = "085"
down_revision = "084"
branch_labels = None
depends_on = None

def upgrade() -> None:
    op.create_table("guest_drafts", sa.Column("id", postgresql.UUID(as_uuid=True), primary_key=True), sa.Column("token_hash", sa.String(64), nullable=False, unique=True), sa.Column("prompt", sa.Text, nullable=False, server_default=""), sa.Column("claimed_by_user_id", postgresql.UUID(as_uuid=True), sa.ForeignKey("users.id")), sa.Column("claimed_at", sa.DateTime(timezone=True)), sa.Column("expires_at", sa.DateTime(timezone=True), nullable=False), sa.Column("created_at", sa.DateTime(timezone=True), server_default=sa.func.now()))
    op.create_table("guest_draft_assets", sa.Column("id", postgresql.UUID(as_uuid=True), primary_key=True), sa.Column("guest_draft_id", postgresql.UUID(as_uuid=True), sa.ForeignKey("guest_drafts.id", ondelete="CASCADE"), nullable=False), sa.Column("original_filename", sa.String(500), nullable=False), sa.Column("mime_type", sa.String(200), nullable=False), sa.Column("byte_size", sa.BigInteger, nullable=False), sa.Column("storage_relative_path", sa.String(1000), nullable=False), sa.Column("metadata_json", postgresql.JSONB), sa.Column("created_at", sa.DateTime(timezone=True), server_default=sa.func.now()))
    op.create_index("idx_guest_drafts_expiry", "guest_drafts", ["expires_at"])

def downgrade() -> None:
    op.drop_index("idx_guest_drafts_expiry", table_name="guest_drafts")
    op.drop_table("guest_draft_assets")
    op.drop_table("guest_drafts")
