"""Add recall audit fields to laporan_shift.

Adds recalled_by_id and recalled_at so operators can pull back a SUBMITTED
laporan to DRAFT and leave a full audit trail.

Revision ID: e5f6a1b2c3d4
Revises: d4e5f6a1b2c3
Create Date: 2026-04-02
"""

from alembic import op
import sqlalchemy as sa

revision = 'e5f6a1b2c3d4'
down_revision = 'd4e5f6a1b2c3'
branch_labels = None
depends_on = None


def upgrade() -> None:
    op.add_column('laporan_shift', sa.Column(
        'recalled_by_id',
        sa.Integer(),
        sa.ForeignKey('master_user.id', ondelete='SET NULL'),
        nullable=True,
    ))
    op.add_column('laporan_shift', sa.Column(
        'recalled_at',
        sa.DateTime(timezone=True),
        nullable=True,
    ))


def downgrade() -> None:
    op.drop_column('laporan_shift', 'recalled_at')
    op.drop_column('laporan_shift', 'recalled_by_id')
