translatedFormat($format); } } if (! function_exists('formatDateTime')) { function formatDateTime(string $dateTime): string { return Carbon::parse($dateTime)->translatedFormat('l, d M Y H:i:s'); } } if (! function_exists('formatDateDash')) { function formatDateDash(string $date): string { return Carbon::parse($date)->translatedFormat('Y-m-d'); } } if (! function_exists('timeAgo')) { function timeAgo(?string $date = null): string { return ! $date ? '-' : Carbon::parse($date)->diffForHumans(); } } if (! function_exists('normalizeOpeningHours')) { function normalizeOpeningHours(array $openingHours) { $days = ['senin', 'selasa', 'rabu', 'kamis', 'jumat', 'sabtu', 'minggu']; return collect($days) ->mapWithKeys(fn ($day) => [ $day => $openingHours[$day] ?? ['open' => null, 'close' => null], ]) ->toArray(); } }