<?php

namespace App\Http\Controllers;

use App\Models\Barang;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Schema;

class KatalogController extends Controller
{
    public function index(Request $request)
    {
        // Tangkap filter dari URL
        $kategoriTerpilih = $request->query('kategori', 'semua');

        // Proteksi Cerdas: Cek apakah kolom 'kategori' benar-benar ada di database
        if (Schema::hasColumn('barangs', 'kategori')) {
            // Jika kolom ada, ambil daftar kategori unik secara dinamis
            $daftarKategori = Barang::select('kategori')
                ->whereNotNull('kategori')
                ->groupBy('kategori')
                ->pluck('kategori');

            // Filter data barang sesuai request
            if ($kategoriTerpilih && $kategoriTerpilih !== 'semua') {
                $barangs = Barang::where('kategori', $kategoriTerpilih)->get();
            } else {
                $barangs = Barang::all();
            }
        } else {
            // AMAN: Jika kolom 'kategori' belum dibuat di phpMyAdmin, gunakan fallback ini agar tidak crash!
            $daftarKategori = collect(['makanan', 'minuman']);
            $barangs = Barang::all();
            $kategoriTerpilih = 'semua';
        }

        // Lempar data ke view katalog
        return view('katalog', compact('barangs', 'daftarKategori', 'kategoriTerpilih'));
    }

    public function detail($id)
    {
        // 1. Ambil data produk utama yang diklik pelanggan
        $barang = Barang::findOrFail($id);

        // 2. 🎯 CRM INSIGHT: Tarik 4 produk sembako lain dengan kategori yang SAMA sebagai produk terkait (kecuali produk itu sendiri)
        $produkTerkait = Barang::where('kategori', $barang->kategori)
            ->where('id', '!=', $barang->id)
            ->where('stok', '>', 0)
            ->take(4)
            ->get();

        return view('detail_barang', compact('barang', 'produkTerkait'));
    }
}
