Newer
Older
gn-synapse / alembic / versions / 20261004_0009_user_prefs.py
"""user_prefs: локаль-override и флаг блокировки пользователя.

Таблица минимальной записи пользователя (sub gnexus-auth — PK):
- locale — override языка интерфейса (i18n.md, конвенция хендбука);
- blocked — флаг из вебхуков gnexus-auth (user.blocked/user.unblocked/
  user.deleted/user.archived/user.restored), гейтит MCP-токены владельца.

Revision ID: a4f8d2c17b90
Revises: c9a2d6e71f43
Create Date: 2026-10-04
"""

from alembic import op
import sqlalchemy as sa

revision = "a4f8d2c17b90"
down_revision = "c9a2d6e71f43"
branch_labels = None
depends_on = None


def upgrade() -> None:
    op.create_table(
        "user_prefs",
        sa.Column("user_id", sa.String(64), primary_key=True),
        sa.Column("locale", sa.String(8), nullable=True),
        sa.Column("blocked", sa.Boolean(), nullable=False, server_default="false"),
        sa.Column("blocked_at", sa.DateTime(timezone=True), nullable=True),
        sa.Column(
            "updated_at", sa.DateTime(timezone=True),
            server_default=sa.text("now()"), nullable=False,
        ),
    )


def downgrade() -> None:
    op.drop_table("user_prefs")