"""Add issue_date index for department issue reports dashboard.

Revision ID: 025_issue_report_idx
Revises: 024_department_issues
Create Date: 2026-08-10
"""

from typing import Sequence, Union

import sqlalchemy as sa
from alembic import op

revision: str = "025_issue_report_idx"
down_revision: Union[str, None] = "024_department_issues"
branch_labels: Union[str, Sequence[str], None] = None
depends_on: Union[str, Sequence[str], None] = None


def upgrade() -> None:
    conn = op.get_bind()
    inspector = sa.inspect(conn)
    indexes = {idx["name"] for idx in inspector.get_indexes("department_issues")}
    if "ix_department_issues_issue_date" not in indexes:
        op.create_index(
            "ix_department_issues_issue_date",
            "department_issues",
            ["company_id", "issue_date"],
            unique=False,
        )


def downgrade() -> None:
    conn = op.get_bind()
    inspector = sa.inspect(conn)
    indexes = {idx["name"] for idx in inspector.get_indexes("department_issues")}
    if "ix_department_issues_issue_date" in indexes:
        op.drop_index("ix_department_issues_issue_date", table_name="department_issues")
