MIF_E31222882/app/Http/Controllers/pages/VenueController.php

42 lines
1.6 KiB
PHP

<?php
// app/Http/Controllers/pages/VenueController.php
namespace App\Http\Controllers\pages;
use App\Http\Controllers\Controller;
use App\Models\Venue;
use Carbon\Carbon; // <-- Pastikan Carbon di-import
class VenueController extends Controller
{
public function venue($venueName)
{
$venue = Venue::where('name', $venueName)
->with(['tables', 'images', 'operatingHours', 'reviews.user'])
->firstOrFail();
// --- LOGIKA BARU UNTUK JAM OPERASIONAL HARI INI ---
// Day of week: 1 (Senin) - 7 (Minggu). Carbon menggunakan 0 (Minggu) - 6 (Sabtu)
$dayOfWeek = Carbon::now('Asia/Jakarta')->dayOfWeekIso; // ISO standard: 1=Senin, 7=Minggu
// Cari jadwal untuk hari ini dari data yang sudah dimuat
$todaysHours = $venue->operatingHours->firstWhere('day_of_week', $dayOfWeek);
// Siapkan data jam buka dan tutup untuk hari ini
// Jika tidak ada jadwal spesifik, atau jika hari ini libur, maka venue dianggap tutup
if ($todaysHours && !$todaysHours->is_closed) {
$openTime = $todaysHours->open_time;
$closeTime = $todaysHours->close_time;
} else {
// Set default ke 'tutup' jika tidak ada jadwal atau is_closed = true
$openTime = '00:00';
$closeTime = '00:00';
}
// --- AKHIR LOGIKA BARU ---
$averageRating = $venue->reviews->avg('rating');
$totalReviews = $venue->reviews->count();
// Kirim semua data ke view
return view('pages.venue', compact('venue', 'openTime', 'closeTime', 'averageRating', 'totalReviews'));
}
}