"""add notification performance indexes

Revision ID: f2ae20783fac
Revises: 9220716aa5ab
"""

from typing import Sequence, Union

from alembic import op

revision: str = "f2ae20783fac"
down_revision: Union[str, Sequence[str], None] = "9220716aa5ab"
branch_labels = None
depends_on = None


def upgrade():
    # ایندکس برای جستجوی سفارش‌های نزدیک انقضا
    op.create_index(
        "ix_orders_notif_scan",
        "orders",
        ["payment_status", "expiration_date", "id"],
    )

    # ایندکس برای جلوگیری از ارسال تکراری
    op.create_index(
        "ix_notification_logs_lookup",
        "notification_logs",
        ["order_id", "notification_type"],
    )


def downgrade():
    op.drop_index(
        "ix_notification_logs_lookup",
        table_name="notification_logs",
    )

    op.drop_index(
        "ix_orders_notif_scan",
        table_name="orders",
    )