"""add report.public_token for durable QR access

Revision ID: 20260928_qrtoken
Revises: 20260928_dash
Create Date: 2026-09-28 00:00:00.000000

"""

from collections.abc import Sequence

import sqlalchemy as sa
from alembic import op

revision: str = "20260928_qrtoken"
down_revision: str | None = "20260928_dash"
branch_labels: str | Sequence[str] | None = None
depends_on: str | Sequence[str] | None = None


def upgrade() -> None:
    op.add_column("report", sa.Column("public_token", sa.String(64), nullable=True))
    op.create_unique_constraint("uq_report_public_token", "report", ["public_token"])
    op.create_index("ix_report_public_token", "report", ["public_token"])


def downgrade() -> None:
    op.drop_index("ix_report_public_token", table_name="report")
    op.drop_constraint("uq_report_public_token", "report", type_="unique")
    op.drop_column("report", "public_token")
