"""Add anomali_records table.

Revision ID: q3a4b5c6d7e8
Revises: p2f3a4b5c6d7
Create Date: 2026-04-03
"""
from alembic import op
import sqlalchemy as sa

revision = 'q3a4b5c6d7e8'
down_revision = 'p2f3a4b5c6d7'
branch_labels = None
depends_on = None


def upgrade() -> None:
    op.create_table(
        'anomali_records',
        sa.Column('id', sa.Integer(), primary_key=True),
        sa.Column('spbu_id', sa.Integer(),
                  sa.ForeignKey('master_spbu.id', ondelete='CASCADE'),
                  nullable=False),
        sa.Column('tipe', sa.String(30), nullable=False),
        sa.Column('produk_id', sa.Integer(),
                  sa.ForeignKey('master_produk.id', ondelete='SET NULL'),
                  nullable=True),
        sa.Column('nozzle_id', sa.Integer(),
                  sa.ForeignKey('master_spbu_nozzle.id', ondelete='SET NULL'),
                  nullable=True),
        sa.Column('plat_nomor', sa.String(20), nullable=True),
        sa.Column('detail', sa.JSON(), nullable=True),
        sa.Column('status', sa.String(20), nullable=False,
                  server_default='new'),
        sa.Column('assigned_to', sa.Integer(),
                  sa.ForeignKey('master_user.id', ondelete='SET NULL'),
                  nullable=True),
        sa.Column('notes', sa.Text(), nullable=True),
        sa.Column('created_at', sa.DateTime(), server_default=sa.func.now(),
                  nullable=False),
        sa.Column('updated_at', sa.DateTime(), server_default=sa.func.now(),
                  nullable=False),
    )
    op.create_index('ix_anomali_spbu_id', 'anomali_records', ['spbu_id'])
    op.create_index('ix_anomali_status', 'anomali_records', ['status'])
    op.create_index('ix_anomali_tipe', 'anomali_records', ['tipe'])


def downgrade() -> None:
    op.drop_table('anomali_records')
