<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Models\EatingPattern;
use Illuminate\Support\Facades\Auth;

class EatingPatternController extends Controller
{
    /**
     * Menampilkan halaman form utama sekaligus memuat live data statistik
     */
    public function index()
    {
        // LOGIKA BARU: Jika user sudah login DAN rolenya adalah admin, langsung alihkan ke dashboard admin
        // Catatan: Sesuaikan 'role' dengan nama kolom role di tabel users Anda (misal: role atau level)
        if (Auth::check() && Auth::user()->role === 'admin') {
            return redirect()->route('admin.dashboard');
        }

        // Jalankan kode statistik seperti biasa untuk Guest yang belum login
        $teratur = EatingPattern::where('label_hasil', 'Teratur')->count();
        $berantakan = EatingPattern::where('label_hasil', 'Berantakan')->count();
        $terlewat = EatingPattern::where('label_hasil', 'Sering Terlewat')->count();
        $total = $teratur + $berantakan + $terlewat;

        // Mengirim data hitungan ke file welcome.blade.php
        return view('welcome', compact('teratur', 'berantakan', 'terlewat', 'total'));
    }

    /**
     * Memproses data inputan kuesioner menggunakan logika Decision Tree
     */
    public function predict(Request $request)
    {
        // 1. Validasi Data
        $request->validate([
            'nama' => 'required|string|max:255',
            'nim' => 'required|string|max:20',
            'skor_rutinitas' => 'required|numeric',
            'frekuensi_skip' => 'required|numeric',
            'dampak_begadang' => 'required|numeric',
        ]);

        // 2. Ambil data dari Form
        $rutin = $request->skor_rutinitas;
        $skip = $request->frekuensi_skip;
        $begadang = $request->dampak_begadang;

        // 3. Logika Decision Tree & Pemberian Saran
        $hasil = "";
        $saran = "";

        if ($skip <= 2.75) {
            if ($rutin >= 3.5) {
                $hasil = "Teratur";
                $saran = "Luar biasa! Konsistensi Anda sangat baik. Tetap pertahankan pola ini dan pastikan hidrasi tubuh tercukupi dengan minum air mineral minimal 2 liter sehari.";
            } else {
                $hasil = "Sering Terlewat";
                $saran = "Pola makan Anda cukup baik, namun sering terganggu rutinitas. Cobalah menyiapkan snack sehat seperti buah atau gandum untuk mengganjal perut di sela jam kuliah.";
            }
        } else {
            if ($begadang >= 1.5) {
                $hasil = "Berantakan";
                $saran = "Waspada! Kebiasaan begadang Anda sangat merusak jam makan esok harinya. Cobalah atur ulang jadwal tidur dan pasang alarm khusus untuk waktu makan agar metabolisme tetap terjaga.";
            } else {
                $hasil = "Sering Terlewat";
                $saran = "Jadwal harian Anda terlihat padat. Tips: Lakukan 'Meal Prep' (menyiapkan makanan) di malam hari agar Anda tidak melewatkan sarapan meski ada kelas pagi jam 07.00.";
            }
        }

        // 4. Simpan ke Database (user_id akan otomatis null jika diisi oleh Guest/Tanpa Login)
        EatingPattern::create([
            'nama'            => $request->nama,
            'nim'             => $request->nim,
            'skor_rutinitas'  => $rutin,
            'frekuensi_skip'  => $skip,
            'dampak_begadang' => $begadang,
            'label_hasil'     => $hasil,
            'rekomendasi'     => $saran, 
        ]);

        // Mengirimkan hasil dan saran kembali ke view melalui Session
        return back()->with([
            'success' => $hasil,
            'saran'   => $saran
        ]);
    }

    /**
     * Menampilkan riwayat data (Khusus Admin / Pengguna yang Login)
     */
    public function history()
    {
        // Hanya mengambil riwayat milik user yang sedang login
        $data = EatingPattern::where('user_id', Auth::id())
                             ->orderBy('created_at', 'desc')
                             ->get();
        
        return view('history', compact('data'));
    }
}