"""Add user_profiles table for per-user admin settings Revision ID: 013_add_user_profiles Revises: 012_add_multi_user_support Create Date: 2026-03-06 """ from typing import Union import sqlalchemy as sa from alembic import op # revision identifiers, used by Alembic. revision: str = "013_add_user_profiles" down_revision: Union[str, None] = "012_add_multi_user_support" depends_on: Union[str, None] = None def upgrade() -> None: """Create the user_profiles table.""" op.create_table( "user_profiles", sa.Column("id", sa.Integer(), nullable=False), sa.Column("user_id", sa.String(255), nullable=False), sa.Column("display_name", sa.String(255), nullable=True), sa.Column("daily_upload_limit", sa.Integer(), nullable=True), sa.Column("notes", sa.Text(), nullable=True), sa.Column("is_blocked", sa.Boolean(), nullable=False, server_default=sa.text("0")), sa.Column("created_at", sa.DateTime(timezone=True), server_default=sa.text("CURRENT_TIMESTAMP")), sa.Column("updated_at", sa.DateTime(timezone=True), server_default=sa.text("CURRENT_TIMESTAMP")), sa.PrimaryKeyConstraint("id"), ) op.create_index("ix_user_profiles_id", "user_profiles", ["id"]) op.create_index("ix_user_profiles_user_id", "user_profiles", ["user_id"], unique=True) def downgrade() -> None: """Drop the user_profiles table.""" op.drop_index("ix_user_profiles_user_id", table_name="user_profiles") op.drop_index("ix_user_profiles_id", table_name="user_profiles") op.drop_table("user_profiles")