"""drop_orphaned_tables

Revision ID: c4d5e6f7a8b9
Revises: a1b2c3d4e5f6
Create Date: 2026-07-24 12:00:00.000000

"""
from typing import Sequence, Union

from alembic import op
import sqlalchemy as sa


# revision identifiers, used by Alembic.
revision: str = 'c4d5e6f7a8b9'
down_revision: Union[str, Sequence[str], None] = 'a1b2c3d4e5f6'
branch_labels: Union[str, Sequence[str], None] = None
depends_on: Union[str, Sequence[str], None] = None


def upgrade() -> None:
    """Elimina tablas huérfanas de versiones anteriores del sistema."""
    op.drop_table('documents', if_exists=True)
    op.drop_table('index_logs', if_exists=True)
    op.drop_table('folders', if_exists=True)


def downgrade() -> None:
    """Recrea las tablas huérfanas (no necesario en downgrade, solo para consistencia)."""
    op.create_table('folders',
        sa.Column('id', sa.String(length=255), nullable=False),
        sa.Column('path', sa.String(length=1024), nullable=False),
        sa.Column('created_at', sa.DateTime(), server_default=sa.text('now()'), nullable=False),
        sa.Column('updated_at', sa.DateTime(), server_default=sa.text('now()'), nullable=False),
        sa.PrimaryKeyConstraint('id')
    )
    op.create_table('index_logs',
        sa.Column('id', sa.Integer(), autoincrement=True, nullable=False),
        sa.Column('folder_id', sa.String(length=255), nullable=False),
        sa.Column('document_id', sa.String(length=255), nullable=False),
        sa.Column('event', sa.String(length=50), nullable=False),
        sa.Column('status', sa.String(length=50), nullable=False),
        sa.Column('message', sa.Text(), nullable=True),
        sa.Column('created_at', sa.DateTime(), server_default=sa.text('now()'), nullable=False),
        sa.PrimaryKeyConstraint('id')
    )
    op.create_table('documents',
        sa.Column('id', sa.String(length=255), nullable=False),
        sa.Column('folder_id', sa.String(length=255), nullable=False),
        sa.Column('name', sa.String(length=1024), nullable=False),
        sa.Column('mimetype', sa.String(length=255), nullable=True),
        sa.Column('size_bytes', sa.Integer(), nullable=True),
        sa.Column('version', sa.String(length=50), nullable=False),
        sa.Column('status', sa.String(length=50), nullable=False),
        sa.Column('created_at', sa.DateTime(), server_default=sa.text('now()'), nullable=False),
        sa.Column('updated_at', sa.DateTime(), server_default=sa.text('now()'), nullable=False),
        sa.ForeignKeyConstraint(['folder_id'], ['folders.id'], ),
        sa.PrimaryKeyConstraint('id')
    )
