<?php


namespace App\Http\Controllers\Admin;

use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Models\Kunjungan; // Pastikan nanti sudah buat Modelnya
use Illuminate\Support\Str;

class KunjunganController extends Controller
{
    // 1. Menampilkan daftar kunjungan (untuk sisi Admin)
    public function index()
    {
        // Tetap arahkan ke landing page (gambar yang ada alur 1, 2, 3, 4)
        return view('kunjungan.index');
    }

    public function indexAdmin()
    {
        // Mengambil semua data kunjungan terbaru
        $kunjungans = \App\Models\Kunjungan::latest()->get(); 
        
        // Pastikan mengarah ke file ini
        return view('admin.kunjungan.index', compact('kunjungans'));
    }

    // 2. Proses menyimpan pengajuan (dari Landing Page)
    public function store(Request $request)
    {
        // Generate kode tiket unik
        $kodeTiket = 'TZ-' . date('Y') . '-' . strtoupper(Str::random(4));

        Kunjungan::create([
        'kode_tiket'        => $kodeTiket,
        'nama_kampus'       => $request->nama_kampus,
        'prodi'             => $request->prodi,
        'penanggung_jawab'  => $request->penanggung_jawab, // Sekarang sudah sama
        'no_hp'             => $request->no_hp,
        'tujuan'            => $request->tujuan,
        'tanggal_kunjungan' => $request->tanggal_kunjungan,
        'status'            => 'pending'
    ]);

        return back()->with('success_tiket', $kodeTiket);
    }

    public function create()
    {
        // Fungsi ini bertugas menampilkan halaman form (create.blade.php)
        return view('kunjungan.create'); 
    }

    public function lacak(Request $request)
    {
        $kunjungan = Kunjungan::where('kode_tiket', $request->kode_tiket)->first();

        if (!$kunjungan) {
            return back()->with('error', 'Kode tiket tidak ditemukan.');
        }

        return view('kunjungan.status', compact('kunjungan'));
    }

   public function updateStatus(Request $request, $id)
    {
        $kunjungan = \App\Models\Kunjungan::findOrFail($id);
        
        // Pastikan variabel 'catatan' diambil dari input yang benar
        // Sesuai dengan name="catatan_setuju" atau name="catatan_tolak" yang kita buat tadi
        $isiCatatan = ($request->status == 'disetujui') ? $request->catatan_setuju : $request->catatan_tolak;

        $kunjungan->update([
            'status' => $request->status,
            'catatan' => $isiCatatan // Ini adalah data yang akan masuk ke kolom 'catatan'
        ]);

        return redirect()->route('admin.kunjungan.index')->with('success', 'Status berhasil diperbarui!');
    }

    public function show($id)
    {
        $kunjungan = Kunjungan::findOrFail($id);
        return view('admin.kunjungan.show', compact('kunjungan'));
    }
}