<?php

namespace App\Http\Controllers;

use App\Models\JadwalPerawatan;
use App\Models\JenisPerawatan;
use Barryvdh\DomPDF\Facade\Pdf;

class JadwalPerawatanController extends Controller
{
    public function viewJadwalPerawatanPDF($tahun, $semester, $type, $kepemilikan = 'ak')
    {
        $data = $this->getJadwalData($tahun, $semester, $type, $kepemilikan);
        $filename = "Jadwal_Perawatan_Tahun_{$tahun}_Semester_{$semester}_" . ucfirst($type) . ".pdf";

        $pdf = Pdf::loadView('perawatan.jadwal_perawatan', $data)
            ->setPaper('a4', 'landscape');

        return $pdf->stream($filename);
    }

    public function downloadJadwalPerawatanPDF($tahun, $semester, $type, $kepemilikan = 'ak')
    {
        $data = $this->getJadwalData($tahun, $semester, $type, $kepemilikan);
        $filename = "Jadwal_Perawatan_Tahun_{$tahun}_Semester_{$semester}_" . ucfirst($type) . ".pdf";

        $pdf = Pdf::loadView('perawatan.jadwal_perawatan', $data)
            ->setPaper('a4', 'landscape');

        return $pdf->download($filename);
    }

    private function getJadwalData($tahun, $semester, $type, $kepemilikan)
    {
        $months = ($semester == 1) 
            ? ['januari', 'februari', 'maret', 'april', 'mei', 'juni']
            : ['juli', 'agustus', 'september', 'oktober', 'november', 'desember'];

        $jadwalPerawatan = JadwalPerawatan::with(['jenisPerawatan' => function($query) use ($type) {
                $query->select('id', 'nama', 'kategori')
                    ->where('kategori', $type);
            }])
            ->where('tahun', $tahun)
            ->whereHas('jenisPerawatan', function($query) use ($type) {
                $query->where('kategori', $type);
            })
            ->get();

        $kepemilikanData = [
            'ak' => [
                'ketua' => 'SRI HASTUTI, S.E',
                'nip' => 'NIP. 19770727 201001 2 008',
                'keahlian' => 'Akuntansi',
                'laboran' => 'Laboran Akuntansi'
            ],
            'mp' => [
                'ketua' => 'MOCH. YUSUF, S.E, M.M',
                'nip' => 'NIP. 19850811 202012 1 006',
                'keahlian' => 'Manajemen Perkantoran',
                'laboran' => 'Laboran Manajemen Perkantoran',
            ]
        ];

        return [
            'title' => 'PROGRAM PERAWATAN KOMPUTER ' . strtoupper($type),
            'subtitle' => 'SMKN 1 BONDOWOSO',
            'year' => $tahun.'/'.($tahun+1),
            'semester' => $semester,
            'type' => $type,
            'months' => $months,
            'jadwalPerawatan' => $jadwalPerawatan,
            'kepemilikan' => $kepemilikanData[$kepemilikan]
        ];
    }
}
