"""Make reservation.end_time NOT NULL.

Revision ID: 0016_make_reservation_end_time_required
Revises: 0015_add_completed_at_to_reservation
Create Date: 2026-02-27
"""

import sqlalchemy as sa

from alembic import op

revision = "0016_make_reservation_end_time_required"
down_revision = "0015_add_completed_at_to_reservation"
branch_labels = None
depends_on = None


def upgrade() -> None:
    # Back-fill any legacy rows that still have NULL end_time
    # (default to reserved_at + 90 minutes).
    op.execute(
        """
        UPDATE reservation
        SET end_time = reserved_at + INTERVAL '90 minutes'
        WHERE end_time IS NULL
        """
    )
    op.alter_column(
        "reservation",
        "end_time",
        existing_type=sa.DateTime(),
        nullable=False,
    )


def downgrade() -> None:
    op.alter_column(
        "reservation",
        "end_time",
        existing_type=sa.DateTime(),
        nullable=True,
    )
