<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Models\DataAlumni;
use App\Models\TahunAngkatan;
use App\Models\Jabatan;
use Barryvdh\DomPDF\Facade\Pdf;
use App\Exports\HasilKlasifikasiExport;
use Maatwebsite\Excel\Facades\Excel;

class ExportKmeansController extends Controller
{
    // Menampilkan halaman pilih angkatan dan tombol export
    public function index(Request $request)
    {
        $angkatanList = TahunAngkatan::all();
        $id_angkatan = $request->get('id_angkatan');
        $data = [];

        if ($id_angkatan) {
            $data = DataAlumni::with(['jabatan', 'kualifikasiBidang', 'hasilKlasifikasi'])
                ->where('angkatan', $id_angkatan)
                ->get();
        }

        // Tambahkan mapping jabatan dan kualifikasi bidang
        $jabatanMap = Jabatan::pluck('Kategori_bidang_kerja', 'id_kategori')->toArray();

        return view('hasil_klasIfikasi_eksport', [
            'data' => $data,
            'angkatanList' => $angkatanList,
            'id_angkatan' => $id_angkatan,
            'jabatanMap' => $jabatanMap,
        ]);
    }

    public function exportPDF($id_angkatan)
    {
        $data = DataAlumni::with(['jabatan', 'kualifikasiBidang', 'hasilKlasifikasi'])
            ->where('angkatan', $id_angkatan)
            ->get();

        $angkatan = TahunAngkatan::find($id_angkatan);
        $jabatanMap = Jabatan::pluck('Kategori_bidang_kerja', 'id_kategori')->toArray();
       
        $pdf = Pdf::loadView('hasil_klasifikasi_pdf', [
            'data' => $data,
            'angkatan' => $angkatan->tahun ?? 'Unknown',
            'jabatanMap' => $jabatanMap,
        ]);

        return $pdf->download('hasil_klasifikasi_angkatan_' . ($angkatan->tahun ?? 'unknown') . '.pdf');
    }

    public function exportExcel($id_angkatan)
    {
        // Ambil data angkatan berdasarkan ID
        $angkatan = TahunAngkatan::find($id_angkatan);
        
        // Gunakan nama tahun angkatan dalam nama file
        $tahunAngkatan = $angkatan->tahun ?? 'Unknown';

        return Excel::download(new HasilKlasifikasiExport($id_angkatan), 'hasil_klasifikasi_angkatan_' . $tahunAngkatan . '.xlsx');
    }
}
