<?php

namespace App\Exports;

use App\Models\DataAlumni;
use App\Models\Jabatan;
use Maatwebsite\Excel\Concerns\FromCollection;
use Maatwebsite\Excel\Concerns\WithHeadings;

class HasilKlasifikasiExport implements FromCollection, WithHeadings
{
    protected $id_angkatan;

    public function __construct($id_angkatan)
    {
        $this->id_angkatan = $id_angkatan;
    }

    public function collection()
    {
        // Ambil mapping ID jabatan ke nama kategori
        $jabatanMap = Jabatan::pluck('Kategori_bidang_kerja', 'id_kategori')->toArray();
        return DataAlumni::with(['kualifikasiBidang', 'hasilKlasifikasi'])
            ->where('angkatan', $this->id_angkatan)
            ->get()
            ->map(function ($item) use ($jabatanMap) {
                return [
                    'Nama' => $item->nama ?? '-',
                    'Nim' => $item->nim ?? '-',
                    'Jabatan' => $jabatanMap[$item->jabatan] ?? '-',
                    'Kualifikasi Bidang' => $item->kualifikasiBidang->kualifikasi_bidang ?? '-',
                    'Cluster' => is_numeric($item->hasilKlasifikasi->cluster) ? $item->hasilKlasifikasi->cluster : '-',
                    'Klasifikasi' => match ((int) ($item->hasilKlasifikasi->cluster ?? -1)) {
                        0 => 'Cluster 0 - TIDAK SESUAI',
                        1 => 'Cluster 1 - KURANG SESUAI',
                        2 => 'Cluster 2 - SESUAI',
                        default => '-',
                    },
                ];
            });
    }

    public function headings(): array
    {
        return ['Nama','Nim' ,'Kelompok Jabatan', 'Kualifikasi Bidang', 'Cluster','Klasifikasi'];
    }
}
