"""add booking performance indexes Revision ID: c1e4b8f2a7d9 Revises: a4d9c7e18b21 Create Date: 2026-04-08 14:00:00.000000 """ from typing import Sequence, Union from alembic import op revision: str = 'c1e4b8f2a7d9' down_revision: Union[str, None] = 'a4d9c7e18b21' branch_labels: Union[str, Sequence[str], None] = None depends_on: Union[str, Sequence[str], None] = None def upgrade() -> None: # Speed up filtering bookings by status (most common admin query filter) op.create_index('ix_bookings_status', 'bookings', ['status']) # Speed up date-range queries and ordering used by the schedule view op.create_index('ix_bookings_requested_date', 'bookings', ['requested_date']) # Speed up the SSE signature query: max(updated_at) table scan → index scan op.create_index('ix_bookings_updated_at', 'bookings', ['updated_at']) # Composite: member + status used by member-facing /members/bookings endpoint op.create_index('ix_bookings_member_id_status', 'bookings', ['member_id', 'status']) def downgrade() -> None: op.drop_index('ix_bookings_member_id_status', table_name='bookings') op.drop_index('ix_bookings_updated_at', table_name='bookings') op.drop_index('ix_bookings_requested_date', table_name='bookings') op.drop_index('ix_bookings_status', table_name='bookings')