<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Models\Makanan;
use App\Models\Kriteria;
use App\Models\BobotKriteria;
use App\Models\SkorMakanan;
use App\Models\Rekomendasi;
use Illuminate\Support\Facades\Auth; // pastikan ini ada di atas
use Carbon\Carbon;

class RekomendasiController extends Controller
{
    //
    public function hitungDanSimpan()
    {
        $alternatifs = Makanan::all();
        $kriterias = Kriteria::all();
        $bobotKriterias = BobotKriteria::pluck('bobot', 'kriteria_id');

        foreach ($alternatifs as $alternatif) {
            $nilaiAkhir = 0;

            foreach ($kriterias as $kriteria) {
                $bobotKriteria = $bobotKriterias[$kriteria->id] ?? 0;
                $bobotAlternatif = SkorMakanan::where('kriteria_id', $kriteria->id)
                    ->where('makanan_id', $alternatif->id)
                    ->value('nilai') ?? 0;

                $nilaiAkhir += $bobotKriteria * $bobotAlternatif;
            }

            // Simpan ke tabel rekomendasi
            Rekomendasi::updateOrCreate(
                ['makanan_id' => $alternatif->id, 'user_id' => Auth::id()],
                [
                    'nilai_akhir' => $nilaiAkhir,
                    'tanggal_rekomendasi' => Carbon::now()->toDateString()
                ]
            );
        }

        return redirect()->route('rekomendasi.hasil')->with('success', 'Rekomendasi berhasil dihitung dan disimpan.');
    }

    // 2. Tampilkan hasil rekomendasi
    public function tampil()
{
    // Hanya mengambil data rekomendasi dengan nilai_akhir lebih besar dari 0
    $rekomendasi = Rekomendasi::with('makanan')
        ->where('nilai_akhir', '>', 0)
        ->orderByDesc('nilai_akhir')
        ->get();

    return view('admin.rekomendasi', compact('rekomendasi'));
}



    public function kirimKeUser($userId)
{
    $adminId = Auth::id();

    $dataAdmin = Rekomendasi::where('user_id', $adminId)->get();

    foreach ($dataAdmin as $item) {
        Rekomendasi::updateOrCreate(
            ['user_id' => $userId, 'makanan_id' => $item->makanan_id],
            [
                'nilai_akhir' => $item->nilai_akhir,
                'tanggal_rekomendasi' => now(),
            ]
        );
    }

    return redirect()->back()->with('success', 'Hasil rekomendasi berhasil dikirim ke user.');
}

public function hapusSemua()
{
    Rekomendasi::truncate(); // Menghapus semua data
    return redirect()->back()->with('success', 'Semua data rekomendasi berhasil dihapus.');
}


}
