<?php

namespace App\Http\Controllers;

use App\Models\Kunjungan;
use App\Models\Tamu;
use Illuminate\Http\Request;

class KunjunganController extends Controller
{
    /**
     * Menampilkan form kunjungan
     */
    public function create()
    {
        return view('kunjungan');
    }

    /**
     * Menyimpan data kunjungan
     */
    public function store(Request $request)
    {
        $request->validate([
            'nama' => 'required|string|max:100',
            'instansi' => 'required|string|max:150',
            'tujuan' => 'required|string',
            'bertemu_dengan' => 'required|string|max:100',
        ]);

        $kunjungan = Kunjungan::create([
            'nama' => $request->nama,
            'instansi' => $request->instansi,
            'tujuan' => $request->tujuan,
            'bertemu_dengan' => $request->bertemu_dengan,
            'jam' => $request->input('jam', now()->format('H:i:s')),
            'hari' => now()->translatedFormat('l'),
            'tanggal' => $request->input('tanggal', now()->format('Y-m-d')),
        ]);

        Tamu::create([
            'nama' => $request->nama,
            'instansi' => $request->instansi,
            'keperluan' => $request->tujuan,
            'tanggal' => $kunjungan->tanggal,
            'jam' => $kunjungan->jam,
            'bertemu_dengan' => $request->bertemu_dengan,
        ]);

        return redirect()->route('pesan.kesan', $kunjungan->id);
    }

    /**
     * Menampilkan halaman Pesan & Kesan
     */
    public function pesanKesan($id)
    {
        $kunjungan = Kunjungan::findOrFail($id);

        return view('pesankesan', [
            'kunjungan' => $kunjungan
        ]);
    }

    /**
     * Menyimpan Pesan & Kesan
     */
    public function simpanPesanKesan(Request $request, $id)
    {
        $request->validate([
            'pesan' => 'required|string',
            'kesan' => 'required|string',
        ]);

        $kunjungan = Kunjungan::findOrFail($id);

        $kunjungan->pesan = $request->input('pesan');
        $kunjungan->kesan = $request->input('kesan');
        $kunjungan->save();

        $tamu = Tamu::where('nama', $kunjungan->nama)
            ->where('instansi', $kunjungan->instansi)
            ->latest()
            ->first();

        if ($tamu) {
            $tamu->keperluan = $kunjungan->tujuan;
            $tamu->save();
        }

        return redirect()->route('terimakasih')
            ->with('success', 'Terima kasih atas pesan dan kesan Anda.');
    }
}