42 lines
1.6 KiB
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'));
|
|
}
|
|
} |