fix(booking): aggregate public booking state across all schedules
The public doctor payload built `active`/`free_turn`/`hours_of_work` from the personal schedule alone, so a doctor bookable only at a clinic was reported as "نوبتدهی غیرفعال". Aggregate over every schedule instead: any schedule with online booking on and an active day makes the doctor bookable, and the disabled label only appears when all of them are off. Three admin-panel fixes for the same class of bug: - AppointmentsPage took the selected doctor from `dbUuid`, which is the clinic's uuid inside a clinic context — the slots request 404'd. Use `doctorUuid`. - TurnsTimeline rendered any error or unknown empty_reason as "این روز شیفت کاری ندارد". Errors now surface as errors and unknown reasons get a neutral message; the day-off wording is reserved for an explicit day_off from the backend. - Admins have no clinic context, so slots fell back to the personal schedule. They now pick a location from `appointment-booking-locations` and that choice drives the slot, service and create-appointment requests. Adds `app:schedule:normalize-format` for legacy rows stored as a bare JSON list covering only Saturday, which read as day-off for the rest of the week. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -805,6 +805,12 @@ write time. Use `php bin/console app:schedule:audit-locations` to list the offen
|
||||
deactivates them (it never deletes — the hours are user data). If the schedule was in truth a
|
||||
clinic's, move it instead with `app:schedule:assign-clinic`.
|
||||
|
||||
A related legacy issue is the *shape* of the stored setting: very old rows are a bare JSON list
|
||||
(`[{"sessions": …}]`) covering only Saturday, so every other weekday reads as day-off and the
|
||||
`meta` block is missing. `php bin/console app:schedule:normalize-format` reports such rows;
|
||||
`--fix` rewrites them to the canonical `{"0"…"6", "meta"}` shape without touching the session
|
||||
data (absent days become `{"sessions": []}`, absent meta becomes the defaults).
|
||||
|
||||
#### `?date=YYYY-MM-DD`
|
||||
|
||||
Adds `available_on_date` to every entry and echoes `date` in the response. Use it to grey out
|
||||
|
||||
Reference in New Issue
Block a user