<?php

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

return new class extends Migration
{
    public function up(): void
    {
        if (Schema::hasTable('kelayakan_seminar_document_validations')) {
            return;
        }

        Schema::create('kelayakan_seminar_document_validations', function (Blueprint $table) {
            $table->id();
            $table->unsignedBigInteger('kelayakan_seminar_id');
            $table->string('document_key', 60);
            $table->string('reviewer_role', 40);
            $table->unsignedBigInteger('reviewer_id')->nullable();
            $table->string('status', 20)->default('menunggu');
            $table->text('catatan')->nullable();
            $table->timestamp('reviewed_at')->nullable();
            $table->timestamps();

            $table->unique(['kelayakan_seminar_id', 'document_key', 'reviewer_role'], 'ks_doc_validation_unique');
            $table->index(['document_key', 'reviewer_role']);
            $table->foreign('kelayakan_seminar_id', 'ks_doc_validation_ks_fk')
                ->references('id')
                ->on('kelayakan_seminars')
                ->cascadeOnDelete();
        });
    }

    public function down(): void
    {
        Schema::dropIfExists('kelayakan_seminar_document_validations');
    }
};
