<?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

return new class extends Migration
{
    /**
     * Run the migrations.
     *
     * Menambahkan kolom nomor_registrasi dan permohonan_id pada table bucoks
     * untuk menghubungkan data bucok dengan permohonan penilaian
     */
    public function up(): void
    {
        Schema::table('bucoks', function (Blueprint $table) {
            // Menambahkan kolom nomor_registrasi untuk tracking nomor registrasi
            $table->string('nomor_registrasi')->nullable()->after('nomor_tiket')->comment('Nomor registrasi terkait');

            // Menambahkan kolom permohonan_id sebagai foreign key ke table permohonan
            $table->unsignedBigInteger('permohonan_id')->nullable()->after('nomor_registrasi')->comment('ID permohonan terkait');

            // Menambahkan foreign key constraint ke table permohonan
            $table->foreign('permohonan_id')->references('id')->on('permohonan')->onDelete('set null');

            // Menambahkan index untuk performa query
            $table->index(['nomor_registrasi']);
            $table->index(['permohonan_id']);
        });
    }

    /**
     * Reverse the migrations.
     *
     * Menghapus kolom nomor_registrasi dan permohonan_id dari table bucoks
     */
    public function down(): void
    {
        Schema::table('bucoks', function (Blueprint $table) {
            // Menghapus foreign key constraint terlebih dahulu
            $table->dropForeign(['permohonan_id']);

            // Menghapus index
            $table->dropIndex(['nomor_registrasi']);
            $table->dropIndex(['permohonan_id']);

            // Menghapus kolom
            $table->dropColumn(['nomor_registrasi', 'permohonan_id']);
        });
    }
};
