feat: enhance resource calendar validation and UI
- Implement real-time validation for overlapping shifts in the ResourceWorkingHoursPanel. - Remove the copy shift functionality to simplify the UI and prevent confusion. - Introduce ResourceExceptionsCard to manage resource exceptions, including leave and maintenance. - Update ClinicAppointmentSettingsPage to utilize new components and improve tab navigation for resource management. - Add comprehensive validation tests for resource calendar to ensure overlapping shifts are correctly handled. - Update API documentation to reflect new validation error messages and rules.
This commit is contained in:
@@ -58,6 +58,22 @@
|
||||
{ "days": { "0": [{ "start_minute": 540, "end_minute": 1020 }] } }
|
||||
```
|
||||
|
||||
### خطاهای اعتبارسنجی (۴۲۲)
|
||||
|
||||
| شرط | `field` | پیام |
|
||||
|---|---|---|
|
||||
| `start_minute`/`end_minute` نبود یا عدد نبود | همان فیلد | `در روز شنبه مقدار start_minute الزامی است` |
|
||||
| خارج از `0..1440` | همان فیلد | `در روز شنبه مقدار end_minute باید بین ۰ و ۱۴۴۰ باشد` |
|
||||
| `end <= start` | `end_minute` | `در روز شنبه، پایان شیفت باید بعد از شروع آن باشد` |
|
||||
| دو بازهٔ متداخل در یک روز | `start_minute` | `شیفتهای روز شنبه با هم تداخل دارند — بازهها نباید همپوشانی داشته باشند` |
|
||||
|
||||
پیامها **نام روز** را میگویند نه اندیس عددی را، چون مستقیم به کاربر نشان داده میشوند.
|
||||
|
||||
همپوشانی پس از مرتبسازی بازهها بررسی میشود، پس ترتیب ارسال مهم نیست و تداخل بین
|
||||
بازهٔ اول و سوم هم گرفته میشود. مرزِ چسبیده همپوشانی **نیست**: `09:00–13:00` کنار
|
||||
`13:00–17:00` معتبر است (شیفت صبح و عصر). پنل ادمین همین قواعد را حین ویرایش هم اجرا
|
||||
میکند و تا رفع تداخل، دکمهٔ ذخیره را غیرفعال نگه میدارد؛ ولی مرجع نهایی سرور است.
|
||||
|
||||
---
|
||||
|
||||
## استثناها — مرخصی، غیبت، سرویس، تعطیلی موردی
|
||||
|
||||
Reference in New Issue
Block a user