<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Models\Kriteria;
use App\Models\Subkriteria;
use App\Models\Crip;
use Barryvdh\DomPDF\Facade\Pdf;

class SubkriteriaController extends Controller
{
    public function subkriteria()
    {
    $subkriterias = Subkriteria::with('kriteria.kurikulum')->get();
    $kriterias = Kriteria::with('kurikulum')->get();
    return view('admin.subkriteria', compact('subkriterias', 'kriterias'));
    }


    public function tambahsubkriteria(Request $request)
    {
    $request->validate([
        'kriteria_id' => 'required|exists:kriterias,id',
        'pertanyaan' => 'required|string',
    ]);

    $pertanyaan = $request->input('pertanyaan');

    // Cek apakah ada subkriteria dengan pertanyaan yang duplikat, tanpa memperhatikan kriteria
    $duplikatPertanyaan = Subkriteria::where('pertanyaan', $pertanyaan)->exists();

    if ($duplikatPertanyaan) {
        toastr()->error('Subkriteria dengan pertanyaan tersebut sudah ada.');
        return redirect()->back();
    }

    $subkriteria = new Subkriteria();
    $subkriteria->kriteria_id = $request->kriteria_id;
    $subkriteria->pertanyaan = $pertanyaan;

    if ($subkriteria->save()) {
        toastr()->success('Data subkriteria berhasil ditambahkan.');
    } else {
        toastr()->error('Gagal menambahkan data subkriteria.');
    }

    return redirect()->route('subkriteria');
    }


    public function updatesubkriteria(Request $request, $id)
{
    $request->validate([
        'kriteria_id' => 'required|exists:kriterias,id',
        'pertanyaan' => 'required|string',
    ]);

    $pertanyaan = $request->input('pertanyaan');

    // Cek apakah ada pertanyaan yang duplikat di subkriteria lain (kecuali yang sedang diedit)
    $duplikatPertanyaan = Subkriteria::where('pertanyaan', $pertanyaan)
        ->where('id', '!=', $id)
        ->exists();

    if ($duplikatPertanyaan) {
        toastr()->error('Subkriteria dengan pertanyaan tersebut sudah ada.');
        return redirect()->back();
    }

    $subkriteria = Subkriteria::findOrFail($id);
    $subkriteria->kriteria_id = $request->kriteria_id;
    $subkriteria->pertanyaan = $pertanyaan;

    if ($subkriteria->save()) {
        toastr()->success('Data subkriteria berhasil diperbarui.');
    } else {
        toastr()->error('Gagal memperbarui data subkriteria.');
    }

    return redirect()->route('subkriteria')->with('reload', true);
}

public function hapussubkriteria($id)
{
    $subkriteria = Subkriteria::findOrFail($id);
    $subkriteria->delete();

    toastr()->success('Data subkriteria berhasil dihapus.');
    return redirect()->route('subkriteria');
}

public function downloadsubkriteria()
    {
        // Ambil data sekolah dari database
        $subkriterias = Subkriteria::all();
        $pdf = Pdf::loadView('admin.subkriteriapdf', compact('subkriterias'));
        // Download file PDF
        return $pdf->download('data_subkriteria.pdf');
    }

}
