<?php

namespace App\Http\Controllers;

use App\Models\Kriteria;
use App\Models\TipeKriteria;
use Illuminate\Http\Request;

class KriteriaController extends Controller
{
    // Menampilkan daftar semua kriteria
    public function index()
    {
        $kriterias = Kriteria::all();
        return view('pages.kriteria.index', compact('kriterias'));
    }

    // Menampilkan form untuk membuat kriteria baru
    public function create()
    {
        $tipeKriterias = TipeKriteria::all();
        return view('pages.kriteria.create', compact('tipeKriterias'));
    }

    // Menyimpan kriteria baru ke dalam database
    public function store(Request $request)
    {
        // Validasi input yang diterima dari formulir
        $request->validate([
            'nama' => 'required',
            'kode' => 'required',
            'tipe_kriteria_id' => 'required',
            'bobot' => 'required|numeric',
        ],[
            'nama.required' => 'Nama harus diisi.',
            'kode.required' => 'Kode harus diisi.',
            'tipe_kriteria_id.required' => 'Tipe kriteria harus diisi.',
            'bobot.required' => 'Bobot harus diisi.',
            'bobot.numeric' => 'Bobot harus berupa angka.',
        ]);

        // Simpan kriteria baru ke dalam database
        Kriteria::create($request->all());

        // Redirect kembali ke halaman indeks kriteria dengan pesan sukses
        return redirect()->route('kriteria.index')
            ->with('success', 'Kriteria berhasil ditambahkan.');
    }

    // Menampilkan form untuk mengedit kriteria yang ada
    public function edit($id)
    {
        $kriteria = Kriteria::find($id);
        $tipeKriterias = TipeKriteria::all();
        return view('pages.kriteria.edit', compact('kriteria', 'tipeKriterias'));
    }

    // Mengupdate kriteria yang ada di dalam database
    public function update(Request $request, $id)
    {
        // Validasi input yang diterima dari formulir
        $request->validate([
            'kode'=> 'required',
            'nama' => 'required',
            'tipe_kriteria_id' => 'required',
            'bobot' => 'required|numeric',
        ],[
            'nama.required' => 'Nama harus diisi.',
            'kode.required' => 'Kode harus diisi.',
            'tipe_kriteria_id.required' => 'Tipe kriteria harus diisi.',
            'bobot.required' => 'Bobot harus diisi.',
            'bobot.numeric' => 'Bobot harus berupa angka.',
        ]);

        // Temukan kriteria yang akan diubah
        $kriteria = Kriteria::find($id);

        // Update data kriteria dengan data baru
        $kriteria->update($request->all());

        // Redirect kembali ke halaman indeks kriteria dengan pesan sukses
        return redirect()->route('kriteria.index')
            ->with('success', 'Kriteria berhasil diubah');
    }

    // Menghapus kriteria dari database
    public function destroy($id)
    {
        // Temukan kriteria yang akan dihapus
        $kriteria = Kriteria::find($id);

        // Hapus kriteria dari database
        $kriteria->delete();

        // Redirect kembali ke halaman indeks kriteria dengan pesan sukses
        return redirect()->route('kriteria.index')
            ->with('success', 'Kriteria berhasil dihapus');
    }
}
