test(booking): freeze the public-site appointment contract; close task 00b
Adds PublicSiteAppointmentContractTest over GET /api/v1/appointments/user — the endpoint the public site's user panel actually calls. Task 00's note claimed this prerequisite was met by extending my/appointments, which is the admin panel's endpoint; appointments/user returns Appointment::toArray(), which the same task extended separately. The outcome was right, the reasoning in the note was not. This test pins it so neither can drift silently: breaking these fields produces no build error in either repo. Documents why appointment-service-slots cannot be grouped into shifts by the client, and records task 00b's checklist including the two items deliberately not done (colour rewrite, reschedule button) with the evidence for each. Task: docs/new_feture/taskes/task-00b-nobat724-service-mode/ Slot-mode contract: unchanged (--group=slot-mode-frozen green) Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -120,6 +120,18 @@ Get all appointment slots (available and booked) for a doctor on a specific date
|
||||
`isSlotTaken()` تنها تداخل با نوبت دیگر را میگوید، ولی این فهرست شیفت، تعطیلی،
|
||||
`date_override`، پنجرهٔ رزرو و بافر را هم اعمال میکند.
|
||||
|
||||
> **این پاسخ مرزِ شیفتها را نمیگوید — و کلاینت هم نمیتواند حدس بزند.**
|
||||
> برخلاف `appointment-slots` که `sessions` جدا میدهد، اینجا `start_times` مسطح است.
|
||||
> با فهرست مسطح، شکافِ بین دو شیفت از شکافِ یک نوبتِ اشغالشده **قابل تفکیک نیست**:
|
||||
> گام عادی `مدت + بافر` است و دو نوبت پشتسرهم شکافی میسازد که از تعطیلیِ میان صبح و
|
||||
> عصر تشخیصپذیر نیست. هر آستانهای که این دو را جدا کند، روی سرویسهای بلند (گام >
|
||||
> آستانه) هر اسلات را یک گروه میکند و روی نوبتهای اشغال گروهِ جعلی میسازد.
|
||||
>
|
||||
> پس `nobat724_front/lib/appointmentSlots.js` عمداً **یک** session با بازهٔ واقعی
|
||||
> برمیگرداند و تفکیک شیفت نمیسازد. اگر تفکیک لازم شد، باید **سرور** بدهد — جای
|
||||
> طبیعیاش endpoint حالت چندمنبعی (تسک ۰۶) است، نه تغییر قرارداد این یکی که سه کلاینت
|
||||
> مصرفش میکنند.
|
||||
|
||||
**عمومی** (بدون احراز هویت — مصرفکننده: سایت nobat724)، مگر با `exclude_appointment_uuid`
|
||||
که JWT لازم دارد.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user