<?php

namespace App\Http\Controllers;

use App\Models\DataAlumni;
use App\Models\Jabatan;
use App\Models\KualifikasiBidang;
use App\Models\TahunAngkatan;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Log;

class FormAlumniController extends Controller
{
    public function index()
    {
    $nim = session('username');
    $dataAlumni = \App\Models\DataAlumni::where('nim', $nim)->first();

    return view('formalumni', [
        'dataAlumni' => $dataAlumni,
        'angkatans' => TahunAngkatan::all(),
        'kualifikasis' => KualifikasiBidang::all(),
        'jabatans' => Jabatan::all(),
    ]);
    }

    public function store(Request $request)
    {
    // Validasi data
    $validatedData = $request->validate([
        'nama' => 'required|string|max:255',
        'nim' => 'required|string|max:50|unique:data_alumni,nim',
        'angkatan' => 'required|exists:tahun_angkatan,id_angkatan',
        'masa_tunggu' => 'nullable|integer',
        'pekerjaan' => 'nullable|string',
        'instansi' => 'nullable|string',
        'link_linkedin' => 'nullable|string',
        'Jenis_profesi' => 'nullable|string',
        'lingkup_pekerjaan' => 'nullable|string',
        'kualifikasi_bidang_kerja' => 'required',
        'jabatan' => 'required',
    ]);

    // Tambahkan default nilai perlu_review false untuk data baru
        $validatedData['perlu_review'] = false;

    // Membuat data alumni baru
    DataAlumni::create($validatedData);

    // Redirect atau return response
    return redirect()->route('formalumni')->with('success', 'Data berhasil disimpan');
}


public function update(Request $request, $id)
    {
        try {
            $dataAlumni = DataAlumni::findOrFail($id);

            // Validasi data
            $validatedData = $request->validate([
                'nama' => 'required|string|max:255',
                'nim' => 'required|string|max:50',
                'angkatan' => 'required|exists:tahun_angkatan,id_angkatan',
                'masa_tunggu' => 'nullable|integer',
                'pekerjaan' => 'nullable|string',
                'instansi' => 'nullable|string',
                'link_linkedin' => 'nullable|string', // Changed from 'url' to 'string'
                'Jenis_profesi' => 'required|string',
                'lingkup_pekerjaan' => 'required|string',
                'kualifikasi_bidang_kerja' => 'required|exists:kualifikasi_bidang,id_kualifikasi',
                'jabatan' => 'required|exists:jabatan,id_kategori',
            ]);

           // Deteksi perubahan data penting
            $perluReview = (
                $dataAlumni->pekerjaan !== $validatedData['pekerjaan'] ||
                $dataAlumni->instansi !== $validatedData['instansi']
            );

            // Tambahkan flag perlu_review ke data yang akan diupdate
            $validatedData['perlu_review'] = $perluReview;

            // Update data alumni
            $dataAlumni->update($validatedData);

            // Redirect atau return response
            return redirect()->route('formalumni')->with('success', 'Data berhasil diperbarui');
        } catch (\Exception $e) {
            Log::error('Error updating alumni data: ' . $e->getMessage());
            return redirect()->back()->with('error', 'Terjadi kesalahan saat memperbarui data: ' . $e->getMessage())->withInput();
        }
    }

}
