"""Add AI rate limit columns to users, seed default settings Revision ID: 008 Revises: 007 Create Date: 2026-03-19 """ from typing import Sequence, Union from alembic import op import sqlalchemy as sa revision: str = "008" down_revision: Union[str, None] = "007" branch_labels: Union[str, Sequence[str], None] = None depends_on: Union[str, Sequence[str], None] = None def upgrade() -> None: op.add_column("users", sa.Column("max_ai_messages_per_day", sa.Integer, nullable=True)) op.add_column("users", sa.Column("max_ai_tokens_per_day", sa.Integer, nullable=True)) op.execute(""" INSERT INTO settings (id, key, value) VALUES (gen_random_uuid(), 'default_max_ai_messages_per_day', '100'), (gen_random_uuid(), 'default_max_ai_tokens_per_day', '500000') ON CONFLICT (key) DO NOTHING """) def downgrade() -> None: op.drop_column("users", "max_ai_tokens_per_day") op.drop_column("users", "max_ai_messages_per_day") op.execute("DELETE FROM settings WHERE key IN ('default_max_ai_messages_per_day', 'default_max_ai_tokens_per_day')")