fix: info pages review — deduplicate slug index, type reorder items

- Remove triple-redundant slug index: keep only unique=True on column
  (PostgreSQL creates unique index automatically), remove __table_args__
  index and explicit create_index in migration
- Type ReorderRequest.items with ReorderItem(id: int, sort_order: int)
  instead of raw dict — prevents unvalidated input causing 500
- Migration downgrade: just drop_table (unique constraint drops with it)
This commit is contained in:
Fringg
2026-04-24 08:21:41 +03:00
parent e4b4a54797
commit 2071a680d3
4 changed files with 13 additions and 10 deletions
@@ -22,7 +22,7 @@ def upgrade() -> None:
op.create_table(
'info_pages',
sa.Column('id', sa.Integer(), primary_key=True, autoincrement=True),
sa.Column('slug', sa.String(200), unique=True, nullable=False, index=True),
sa.Column('slug', sa.String(200), unique=True, nullable=False),
sa.Column('title', sa.dialects.postgresql.JSONB(), nullable=False, server_default='{}'),
sa.Column('content', sa.dialects.postgresql.JSONB(), nullable=False, server_default='{}'),
sa.Column('is_active', sa.Boolean(), nullable=False, server_default='true'),
@@ -31,11 +31,9 @@ def upgrade() -> None:
sa.Column('created_at', sa.DateTime(timezone=True), server_default=sa.func.now()),
sa.Column('updated_at', sa.DateTime(timezone=True), server_default=sa.func.now()),
)
op.create_index('ix_info_pages_slug', 'info_pages', ['slug'], unique=True)
def downgrade() -> None:
op.drop_index('ix_info_pages_slug', table_name='info_pages')
op.drop_table('info_pages')