[ 'returns' => '?string', 'params' => [ 'doctor' => 'App\Doctor\Entity\Doctor', 'date' => 'string', 'clinic' => '?App\Clinic\Entity\Clinic = NULL', 'forManagement' => 'bool = false', ], ], 'findNextAvailableStart' => [ 'returns' => '?int', 'params' => [ 'doctor' => 'App\Doctor\Entity\Doctor', 'clinic' => '?App\Clinic\Entity\Clinic = NULL', 'daysAhead' => 'int = 30', 'forManagement' => 'bool = false', ], ], 'getAllSlotsWithAvailability' => [ 'returns' => 'array', 'params' => [ 'doctor' => 'App\Doctor\Entity\Doctor', 'date' => 'string', 'clinic' => '?App\Clinic\Entity\Clinic = NULL', 'forManagement' => 'bool = false', ], ], 'getAvailableSlots' => [ 'returns' => 'array', 'params' => [ 'doctor' => 'App\Doctor\Entity\Doctor', 'date' => 'string', 'clinic' => '?App\Clinic\Entity\Clinic = NULL', 'forManagement' => 'bool = false', ], ], 'getServiceStartTimes' => [ 'returns' => 'array', 'params' => [ 'doctor' => 'App\Doctor\Entity\Doctor', 'date' => 'string', 'durationMinutes' => 'int', 'clinic' => '?App\Clinic\Entity\Clinic = NULL', 'forManagement' => 'bool = false', // تسک ۰۰ / قابلیت ۴ — تنها افزودهٔ مجاز؛ رجوع به docblock بالا 'excludeAppointmentId' => '?int = NULL', ], ], 'hasAnyAvailability' => [ 'returns' => 'bool', 'params' => [ 'doctor' => 'App\Doctor\Entity\Doctor', 'date' => 'string', 'clinic' => '?App\Clinic\Entity\Clinic = NULL', 'forManagement' => 'bool = false', ], ], 'resolveSlotLocationId' => [ 'returns' => '?int', 'params' => [ 'doctor' => 'App\Doctor\Entity\Doctor', 'slotStart' => 'int', 'clinic' => '?App\Clinic\Entity\Clinic = NULL', 'forManagement' => 'bool = false', ], ], ];