"""drop_old_tables_add_audit_logs

Revision ID: 4d37f412d37a
Revises: 5e75a59fb763
Create Date: 2025-11-14 21:13:08.003723

"""
from typing import Sequence, Union

from alembic import op
import sqlalchemy as sa
from sqlalchemy.dialects import mysql


# revision identifiers, used by Alembic.
revision: str = '4d37f412d37a'
down_revision: Union[str, None] = '5e75a59fb763'
branch_labels: Union[str, Sequence[str], None] = None
depends_on: Union[str, Sequence[str], None] = None


def upgrade() -> None:
    """Upgrade schema: drop old paddle_ocr_* tables if they exist."""

    # Use raw SQL to drop tables with IF EXISTS
    connection = op.get_bind()

    # Drop old paddle_ocr_* tables (with foreign key dependencies in correct order)
    old_tables = [
        'paddle_ocr_results',
        'paddle_ocr_files',
        'paddle_ocr_batches',
        'paddle_ocr_export_rules',
        'paddle_ocr_translation_configs',
        'paddle_ocr_users',
    ]

    for table in old_tables:
        try:
            connection.execute(sa.text(f"DROP TABLE IF EXISTS {table}"))
            print(f"✓ Dropped table: {table}")
        except Exception as e:
            print(f"  Warning: Could not drop {table}: {e}")

    print("\n✓ All old paddle_ocr_* tables have been removed")
    print("✓ Migration complete - V2 schema is now active")


def downgrade() -> None:
    """Downgrade schema."""
    # Note: Downgrade not supported as it would require recreating old tables
    pass
