Clawith/backend/alembic/versions/add_invitation_codes.py

34 lines
895 B
Python

"""Add invitation_codes table.
This is an idempotent migration — uses CREATE TABLE IF NOT EXISTS.
"""
from alembic import op
import sqlalchemy as sa
revision = "add_invitation_codes"
down_revision = "add_chat_sessions"
branch_labels = None
depends_on = None
def upgrade() -> None:
op.execute("""
CREATE TABLE IF NOT EXISTS invitation_codes (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
code VARCHAR(32) NOT NULL UNIQUE,
max_uses INTEGER NOT NULL DEFAULT 1,
used_count INTEGER NOT NULL DEFAULT 0,
is_active BOOLEAN NOT NULL DEFAULT TRUE,
created_by UUID REFERENCES users(id),
created_at TIMESTAMPTZ DEFAULT NOW()
)
""")
op.execute("""
CREATE INDEX IF NOT EXISTS idx_invitation_codes_code ON invitation_codes(code)
""")
def downgrade() -> None:
op.execute("DROP TABLE IF EXISTS invitation_codes")