<?php

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

return new class extends Migration
{
    /**
     * Run the migrations.
     * Mengubah campus_slug menjadi campus_id yang berelasi ke campuses.id
     */
    public function up(): void
    {
        Schema::table('users', function (Blueprint $table) {
            // 1. Drop foreign key dan kolom lama (campus_slug)
            // Lakukan pengecekan nama foreign key yang mungkin berbeda di environment Anda
            // Jika Anda yakin kolom 'campus_slug' belum memiliki foreign key, Anda bisa menghapus baris dropForeign()
            // Contoh nama foreign key yang mungkin: users_campus_slug_foreign
            // $table->dropForeign('users_campus_slug_foreign'); // Hapus baris ini jika Anda tidak yakin dengan namanya
            
            $table->dropColumn('campus_slug');

            // 2. Tambahkan kolom baru (campus_id)
            // Ini akan menjadi BIGINT UNSIGNED (sesuai dengan ID di tabel campuses)
            $table->foreignId('campus_id')
                  ->nullable() 
                  ->after('role_id')
                  ->constrained('campuses') // Foreign Key ke tabel 'campuses' kolom 'id'
                  ->onDelete('set null'); // Jika kampus di 'campuses' dihapus, set 'campus_id' di 'users' menjadi NULL
        });
    }

    /**
     * Reverse the migrations.
     * Mengembalikan kolom ke kondisi semula (hanya jika diperlukan rollback)
     */
    public function down(): void
    {
        Schema::table('users', function (Blueprint $table) {
            // 1. Drop Foreign Key dan kolom baru
            $table->dropForeign(['campus_id']);
            $table->dropColumn('campus_id');
            
            // 2. Tambahkan kembali kolom lama (campus_slug)
            $table->string('campus_slug', 50)->nullable()->after('role_id');
        });
    }
};