Merge branch 'fix/past-slots-unavailable'

# Conflicts:
#	docs/api/appointment.md
This commit is contained in:
hamed
2026-06-15 18:28:06 +03:30
3 changed files with 123 additions and 3 deletions
@@ -42,11 +42,13 @@ class SlotCalculatorService
public function getAllSlotsWithAvailability(Doctor $doctor, string $date): array
{
$sessions = $this->buildAllSessions($doctor, $date);
$now = time();
return array_map(fn(array $session) => [
'start_time' => $session['start_time'],
'end_time' => $session['end_time'],
'slots' => array_map(fn(array $slot) => array_merge($slot, [
'is_available' => !$this->appointmentRepo->isSlotTaken($doctor, $slot['start'], $slot['end']),
'is_available' => $slot['start'] >= $now
&& !$this->appointmentRepo->isSlotTaken($doctor, $slot['start'], $slot['end']),
]), $session['slots']),
], $sessions);
}
@@ -248,8 +250,10 @@ class SlotCalculatorService
private function filterBookedSlots(Doctor $doctor, array $slots): array
{
$now = time();
return array_values(array_filter($slots, fn(array $slot): bool =>
!$this->appointmentRepo->isSlotTaken($doctor, $slot['start'], $slot['end'])
$slot['start'] >= $now
&& !$this->appointmentRepo->isSlotTaken($doctor, $slot['start'], $slot['end'])
));
}