"""add slot_id to calendar_entries

Revision ID: 0009_add_slot_id_to_entries
Revises: 0008_add_flexible_to_slots
Create Date: 2025-12-06 13:00:00.000000
"""

from alembic import op
import sqlalchemy as sa

# revision identifiers, used by Alembic.
revision = "0009_add_slot_id_to_entries"
down_revision = "0008_add_flexible_to_slots"
branch_labels = None
depends_on = None


def upgrade() -> None:
    # Add slot_id column as nullable initially
    op.add_column(
        "calendar_entries",
        sa.Column(
            "slot_id",
            sa.Integer(),
            nullable=True,
        ),
    )
    
    # Add foreign key constraint
    op.create_foreign_key(
        "fk_calendar_entries_slot_id_calendar_slots",
        "calendar_entries",
        "calendar_slots",
        ["slot_id"],
        ["id"],
        ondelete="SET NULL",
    )
    
    # Add index for better query performance
    op.create_index(
        "ix_calendar_entries_slot_id",
        "calendar_entries",
        ["slot_id"],
    )


def downgrade() -> None:
    op.drop_index("ix_calendar_entries_slot_id", table_name="calendar_entries")
    op.drop_constraint(
        "fk_calendar_entries_slot_id_calendar_slots",
        "calendar_entries",
        type_="foreignkey",
    )
    op.drop_column("calendar_entries", "slot_id")