<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
use App\Models\Rekomendasi;
use App\Models\Makanan; // pastikan model di-import
use App\Models\JenisMakanan;
use App\Models\Kategori;
use Illuminate\Support\Facades\Auth; // pastikan ini ada di atas

class UserController extends Controller
{
    //
    public function userdash(){

        $totalData = DB::table('makanans')->count(); // atau model: DataMakanan::count()
        $totalKriteria = DB::table('kriterias')->count();
        $totalUser = DB::table('users')->count();
        return view('user.userdash', compact('totalData', 'totalKriteria', 'totalUser'));
    }
    public function userabout(){
        return view('user.userabout');
    }

    public function userfeature(){
        return view('user.userfeature');
    }

    public function userdata(Request $request)
{
    // Ambil data dropdown
    $jenisMakananList = JenisMakanan::all();
    $kategoriList = Kategori::all();

    // Query awal
    $makananQuery = Makanan::query();

    // Filter berdasarkan jenis makanan
    if ($request->has('jenis_id') && $request->jenis_id != '') {
        $makananQuery->where('jenis_id', $request->jenis_id);
    }

    // Filter berdasarkan kategori
    if ($request->has('kategori_id') && $request->kategori_id != '') {
        $makananQuery->where('kategori_id', $request->kategori_id);
    }

    // Filter berdasarkan pencarian nama makanan
    if ($request->has('search') && $request->search != '') {
        $makananQuery->where('nama', 'like', '%' . $request->search . '%');
    }

    // Menentukan jumlah data per halaman
    $perPage = $request->per_page === 'all'
        ? $makananQuery->count() // tampilkan semua jika 'all'
        : ($request->per_page ?? 10); // default 25

    // Ambil data dengan paginasi dan simpan parameter pencarian/filter
    $makanans = $makananQuery->paginate($perPage)->appends($request->except('page'));

    // Kirim ke view
    return view('user.userdata', compact('makanans', 'jenisMakananList', 'kategoriList'));
}






public function userresult(Request $request)
{
    $tanggal = $request->input('tanggal');

    $rekomendasi = Rekomendasi::with('makanan')
        ->when($tanggal, function ($query) use ($tanggal) {
            $query->whereDate('tanggal_rekomendasi', $tanggal);
        })
        ->where('nilai_akhir', '>', 0)
        ->orderByDesc('nilai_akhir')
        ->get();

    $totalNilaiAkhir = $rekomendasi->sum('nilai_akhir');

    // Ambil daftar tanggal unik dari database
    $listTanggal = Rekomendasi::select('tanggal_rekomendasi')
        ->distinct()
        ->orderBy('tanggal_rekomendasi', 'desc')
        ->pluck('tanggal_rekomendasi');

    return view('user.userresult', compact('rekomendasi', 'totalNilaiAkhir', 'tanggal', 'listTanggal'));
}




public function show($id)
{
    // ambil data berdasarkan $id atau bisa juga switch/case
    return view('user.userfeature', compact('id'));
}


public function register()
{
    // ambil data berdasarkan $id atau bisa juga switch/case
    return view('user.userregister', compact('id'));
}


}
