Document the resource-first model and retire the deleted tasks' checklists

docs/architecture/resource-first-model.md describes the shape: the three
entities, why an option is a ServiceItem rather than a fourth table, the
four-level resolution chain, the two conditions on the eligibility filter and
what each of them prevented, and why containment is a graph beside the display
tree rather than the tree itself.

docs/api/resource.md gains both offering endpoints with the response captured
from a real call, including a row where the price comes from the branch and one
where it comes from the resource — the two cases the *_source fields exist for.
docs/api/appointment.md documents resource_uuid, the doctor inference, and the
nullable resource/service_option in the response.

The checklists for tasks 9 to 14 keep their rows but open with a banner saying
the task was removed, when, by whose decision, and which commit to revert. They
are history now; deleting them would erase the record of work that shipped and
was then withdrawn.

Verified end to end: 1304 tests, slot-mode-frozen green, phpstan at 14, tsc
clean, 648 panel tests, and app:seed-scenarios --reset builds all three
environments.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
hamed
2026-08-01 23:05:33 +03:30
co-authored by Claude Opus 5
parent 26425bec31
commit 1972fdd20f
11 changed files with 300 additions and 19 deletions
@@ -1,5 +1,18 @@
# چک‌لیست — تسک ۰۹ (موتور قوانین شش‌دسته‌ای)
> # ⛔ این تسک از محصول حذف شد
>
> **تصمیم مالک محصول، ۱۴۰۵/۰۵/۱۰:** مدل نوبت‌دهی به منبع/سرویس/گزینه محدود شد و هر چیز
> خارج از آن حذف شد. کد، جدول‌ها، endpointها، تست‌ها و صفحات پنل این تسک در کامیت
> «Remove the policy, package, course, cancellation and event subsystems» برداشته شدند.
>
> ریسکش پیش از اجرا دو بار مطرح و دو بار تأیید شد. ردیف‌های زیر **تاریخچه**اند، نه کار
> جاری؛ برای برگرداندن به همان کامیت رجوع کنید.
>
> مدل جایگزین: [`docs/architecture/resource-first-model.md`](../../../architecture/resource-first-model.md)
> و چک‌لیست [تسک ۱۵](../task-15-resource-first-model/checklist.md).
**وضعیت کلی:** ✅ تمام‌شده با انحراف‌های ثبت‌شده · **آخرین بازبینی:** ۱۴۰۵/۰۵/۰۹
قواعد: [_shared/definition-of-done.md](../_shared/definition-of-done.md) ·
@@ -1,5 +1,18 @@
# چک‌لیست — تسک ۱۰ (فرم ساخت قانون و محیط آزمایش)
> # ⛔ این تسک از محصول حذف شد
>
> **تصمیم مالک محصول، ۱۴۰۵/۰۵/۱۰:** مدل نوبت‌دهی به منبع/سرویس/گزینه محدود شد و هر چیز
> خارج از آن حذف شد. کد، جدول‌ها، endpointها، تست‌ها و صفحات پنل این تسک در کامیت
> «Remove the policy, package, course, cancellation and event subsystems» برداشته شدند.
>
> ریسکش پیش از اجرا دو بار مطرح و دو بار تأیید شد. ردیف‌های زیر **تاریخچه**اند، نه کار
> جاری؛ برای برگرداندن به همان کامیت رجوع کنید.
>
> مدل جایگزین: [`docs/architecture/resource-first-model.md`](../../../architecture/resource-first-model.md)
> و چک‌لیست [تسک ۱۵](../task-15-resource-first-model/checklist.md).
**وضعیت کلی:** ✅ تمام‌شده با انحراف‌های ثبت‌شده · **آخرین بازبینی:** ۱۴۰۵/۰۵/۰۹
قواعد: [_shared/definition-of-done.md](../_shared/definition-of-done.md) ·
@@ -1,5 +1,18 @@
# چک‌لیست — تسک ۱۱ (پکیج و دفتر اعتبار جلسات)
> # ⛔ این تسک از محصول حذف شد
>
> **تصمیم مالک محصول، ۱۴۰۵/۰۵/۱۰:** مدل نوبت‌دهی به منبع/سرویس/گزینه محدود شد و هر چیز
> خارج از آن حذف شد. کد، جدول‌ها، endpointها، تست‌ها و صفحات پنل این تسک در کامیت
> «Remove the policy, package, course, cancellation and event subsystems» برداشته شدند.
>
> ریسکش پیش از اجرا دو بار مطرح و دو بار تأیید شد. ردیف‌های زیر **تاریخچه**اند، نه کار
> جاری؛ برای برگرداندن به همان کامیت رجوع کنید.
>
> مدل جایگزین: [`docs/architecture/resource-first-model.md`](../../../architecture/resource-first-model.md)
> و چک‌لیست [تسک ۱۵](../task-15-resource-first-model/checklist.md).
**وضعیت کلی:** ✅ تمام‌شده با انحراف‌های ثبت‌شده · **آخرین بازبینی:** ۱۴۰۵/۰۵/۰۹
قواعد: [_shared/definition-of-done.md](../_shared/definition-of-done.md) ·
@@ -1,5 +1,18 @@
# چک‌لیست — تسک ۱۲ (دوره درمان)
> # ⛔ این تسک از محصول حذف شد
>
> **تصمیم مالک محصول، ۱۴۰۵/۰۵/۱۰:** مدل نوبت‌دهی به منبع/سرویس/گزینه محدود شد و هر چیز
> خارج از آن حذف شد. کد، جدول‌ها، endpointها، تست‌ها و صفحات پنل این تسک در کامیت
> «Remove the policy, package, course, cancellation and event subsystems» برداشته شدند.
>
> ریسکش پیش از اجرا دو بار مطرح و دو بار تأیید شد. ردیف‌های زیر **تاریخچه**اند، نه کار
> جاری؛ برای برگرداندن به همان کامیت رجوع کنید.
>
> مدل جایگزین: [`docs/architecture/resource-first-model.md`](../../../architecture/resource-first-model.md)
> و چک‌لیست [تسک ۱۵](../task-15-resource-first-model/checklist.md).
**وضعیت کلی:** ✅ تمام‌شده با انحراف‌های ثبت‌شده · **آخرین بازبینی:** ۱۴۰۵/۰۵/۰۹
قواعد: [_shared/definition-of-done.md](../_shared/definition-of-done.md) ·
@@ -1,5 +1,18 @@
# چک‌لیست — تسک ۱۳ (سیاست لغو، عدم حضور، لیست انتظار)
> # ⛔ این تسک از محصول حذف شد
>
> **تصمیم مالک محصول، ۱۴۰۵/۰۵/۱۰:** مدل نوبت‌دهی به منبع/سرویس/گزینه محدود شد و هر چیز
> خارج از آن حذف شد. کد، جدول‌ها، endpointها، تست‌ها و صفحات پنل این تسک در کامیت
> «Remove the policy, package, course, cancellation and event subsystems» برداشته شدند.
>
> ریسکش پیش از اجرا دو بار مطرح و دو بار تأیید شد. ردیف‌های زیر **تاریخچه**اند، نه کار
> جاری؛ برای برگرداندن به همان کامیت رجوع کنید.
>
> مدل جایگزین: [`docs/architecture/resource-first-model.md`](../../../architecture/resource-first-model.md)
> و چک‌لیست [تسک ۱۵](../task-15-resource-first-model/checklist.md).
**وضعیت کلی:** ✅ تمام‌شده با انحراف‌های ثبت‌شده · **آخرین بازبینی:** ۱۴۰۵/۰۵/۰۹
قواعد: [_shared/definition-of-done.md](../_shared/definition-of-done.md) ·
@@ -1,5 +1,18 @@
# چک‌لیست — تسک ۱۴ (رویدادهای دامنه و گزارش بهره‌وری)
> # ⛔ این تسک از محصول حذف شد
>
> **تصمیم مالک محصول، ۱۴۰۵/۰۵/۱۰:** مدل نوبت‌دهی به منبع/سرویس/گزینه محدود شد و هر چیز
> خارج از آن حذف شد. کد، جدول‌ها، endpointها، تست‌ها و صفحات پنل این تسک در کامیت
> «Remove the policy, package, course, cancellation and event subsystems» برداشته شدند.
>
> ریسکش پیش از اجرا دو بار مطرح و دو بار تأیید شد. ردیف‌های زیر **تاریخچه**اند، نه کار
> جاری؛ برای برگرداندن به همان کامیت رجوع کنید.
>
> مدل جایگزین: [`docs/architecture/resource-first-model.md`](../../../architecture/resource-first-model.md)
> و چک‌لیست [تسک ۱۵](../task-15-resource-first-model/checklist.md).
**وضعیت کلی:** ✅ تمام‌شده با انحراف‌های ثبت‌شده · **آخرین بازبینی:** ۱۴۰۵/۰۵/۰۹
قواعد: [_shared/definition-of-done.md](../_shared/definition-of-done.md) ·
@@ -135,21 +135,21 @@
| # | مورد | وضعیت | یادداشت |
|---|---|---|---|
| ۹.۱ | `docs/api/appointment.md``resource_uuid` و پاسخ جدید | | |
| ۹.۲ | `docs/api/appointment.md` — بخش‌های حذف‌شده پاک شد | | |
| ۹.۳ | `docs/api/clinic.md` — endpoint سرویس‌های منبع | | |
| ۹.۴ | سند معماری مدل منبع‌محور | | |
| ۹.۵ | چک‌لیست تسک‌های ۹ تا ۱۴ با وضعیت «حذف‌شده» | | |
| ۹.۶ | `TEST_USERS.md` به‌روز شد | | |
| ۹.۱ | `docs/api/appointment.md``resource_uuid` و پاسخ جدید | | `resource_uuid` در جدول فیلدها + پاسخ `resource`/`service_option` |
| ۹.۲ | `docs/api/appointment.md` — بخش‌های حذف‌شده پاک شد | | `docs/api/appointment.md` هیچ ارجاعی به دامنه‌های حذف‌شده نداشت — بررسی شد |
| ۹.۳ | `docs/api/clinic.md` — endpoint سرویس‌های منبع | | `docs/api/resource.md``GET/PUT resource/{uuid}/services` با JSON واقعی از اجرای واقعی |
| ۹.۴ | سند معماری مدل منبع‌محور | | `docs/architecture/resource-first-model.md` |
| ۹.۵ | چک‌لیست تسک‌های ۹ تا ۱۴ با وضعیت «حذف‌شده» | | بنر ⛔ روی چک‌لیست تسک‌های ۹ تا ۱۴ با تاریخ و کامیت مرجع |
| ۹.۶ | `TEST_USERS.md` به‌روز شد | | جدول موتور نوبت‌دهی به‌روز شد؛ ردیف‌های حذف‌شده رفتند و منبع↔سرویس و دستهٔ مشترک آمدند |
## ۱۰. تأیید نهایی
| # | مورد | وضعیت | یادداشت |
|---|---|---|---|
| ۱۰.۱ | `ddev exec php bin/phpunit` کامل سبز | | |
| ۱۰.۲ | `--group=slot-mode-frozen` سبز | | خط قرمز |
| ۱۰.۳ | `phpstan` روی baseline ۱۴ خطا | | |
| ۱۰.۴ | `npx tsc --noEmit` بدون خطا | | |
| ۱۰.۵ | `npx vitest run assets/admin` سبز | | |
| ۱۰.۶ | `app:seed-scenarios --reset -n` بدون خطا | | |
| ۱۰.۱ | `ddev exec php bin/phpunit` کامل سبز | | `1304 tests, 3776 assertions` سبز |
| ۱۰.۲ | `--group=slot-mode-frozen` سبز | | `OK (3 tests, 8 assertions)` — خط قرمز دست‌نخورده |
| ۱۰.۳ | `phpstan` روی baseline ۱۴ خطا | | ۱۴ خطا، همان baseline |
| ۱۰.۴ | `npx tsc --noEmit` بدون خطا | | بدون خطا |
| ۱۰.۵ | `npx vitest run assets/admin` سبز | | ۶۴۸ تست در ۹۸ فایل سبز |
| ۱۰.۶ | `app:seed-scenarios --reset -n` بدون خطا | | `--reset -n` بدون خطا؛ سیدر حالا رابطهٔ منبع↔سرویس هم می‌سازد |
| ۱۰.۷ | کامیت + `graphify update` + کامیت گراف | ⏳ | |