<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Models\Validasi; 
use App\Models\PengajuanSurat;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\DB;

class DashboardController extends Controller
{
    /**
     * DASHBOARD UNTUK ADMIN
     */
    public function index()
    {
        // 1. Statistik Validasi Penduduk
        $totalValidasi     = Validasi::count(); 
        // Gunakan array untuk menampung kemungkinan huruf besar/kecil pada status
        $totalKtpMenunggu  = Validasi::whereIn('status', ['menunggu', 'MENUNGGU'])->count();
        
        // 2. Statistik Pengajuan Surat
        $totalPengajuan     = PengajuanSurat::count();
        $totalMenungguSurat = PengajuanSurat::whereIn('status', ['menunggu', 'MENUNGGU'])->count();

        // Data chart
        $chartData = [
            'validasi_ktp'  => $totalValidasi,
            'pengajuan'     => $totalPengajuan,
            'ktp_pending'   => $totalKtpMenunggu,
            'surat_pending' => $totalMenungguSurat,
        ];

        // 3. Notifikasi Lonceng (Opsional jika sudah ada di AppServiceProvider)
        // Tapi kita pastikan ambil data yang sama dengan AppServiceProvider agar sinkron
        $notifikasiTerbaru = PengajuanSurat::with('user')
                            ->whereIn('status', ['menunggu', 'MENUNGGU'])
                            ->latest()
                            ->take(5)
                            ->get();

        return view('dashboard', compact(
            'totalValidasi',
            'totalPengajuan',
            'totalKtpMenunggu',
            'totalMenungguSurat',
            'chartData',
            'notifikasiTerbaru'
        ));
    }

    /**
     * DASHBOARD UNTUK USER
     */
    public function indexUser()
    {
        $userId = Auth::id();

        // Gunakan whereIn untuk menghindari error perbedaan case (besar/kecil) status di database
        $totalMenunggu  = PengajuanSurat::where('user_id', $userId)->whereIn('status', ['menunggu', 'MENUNGGU'])->count();
        $totalDisetujui = PengajuanSurat::where('user_id', $userId)->whereIn('status', ['disetujui', 'DISETUJUI'])->count();
        $totalDitolak   = PengajuanSurat::where('user_id', $userId)->whereIn('status', ['ditolak', 'DITOLAK'])->count();

        return view('user.dashboarduser', compact(
            'totalMenunggu', 
            'totalDisetujui', 
            'totalDitolak'
        ));
    }
}