- Created checklist for task 11: Package and Credit Ledger - Created checklist for task 12: Treatment Course - Created checklist for task 13: Cancellation Policy, No-Show, and Waitlist - Created checklist for task 14: Domain Events and Utilization Reports
5.0 KiB
5.0 KiB
چکلیست — تسک ۰۱ (شعبه و اتاق)
وضعیت کلی: ⏳ شروع نشده · آخرین بازبینی: —
قواعد: _shared/definition-of-done.md · red-lines.md · ui-conventions.md
۰. خط سرخ
| # | مورد | وضعیت | یادداشت |
|---|---|---|---|
| ۰.۱ | --group=slot-mode-frozen سبز |
⏳ | |
| ۰.۲ | SlotCalculatorService دستنخورده |
⏳ | این تسک به آن کاری ندارد |
| ۰.۳ | location_id در JSON برنامهٔ هفتگی دستنخورده |
⏳ | شعبه بالای آدرس مینشیند |
| ۰.۴ | DoctorAddress هیچ ستونی حذف/تغییر نداد |
⏳ | فقط branch_id تهیپذیر اضافه شد |
۱. بکاند
| # | مورد | وضعیت | یادداشت |
|---|---|---|---|
| ۱.۱ | Branch + BranchWorkingHours + Room entity |
⏳ | |
| ۱.۲ | BranchService با گاردهای حذف قابل توسعه (DeletionGuardInterface) |
⏳ | تسک ۰۲ و ۰۷ گارد اضافه میکنند |
| ۱.۳ | WorkingHoursService — اعتبارسنجی و sequence سمت سرور |
⏳ | |
| ۱.۴ | ساعت با start_minute/end_minute عددی، نه رشتهٔ "09:00" |
⏳ | |
| ۱.۵ | هشت endpoint ساخته شد | ⏳ | |
| ۱.۶ | پزشک مستقل هم شعبه دارد (مطب = شعبه) | ⏳ | نه فقط entity_type=clinic |
| ۱.۷ | app:branch:backfill — dry-run پیشفرض، idempotent |
⏳ | |
| ۱.۸ | کنترلر نازک · BaseController · success/paginated/error |
⏳ | |
| ۱.۹ | TenantOwnershipChecker روی هر uuid از request |
⏳ |
۲. دیتابیس
| # | مورد | وضعیت | یادداشت |
|---|---|---|---|
| ۲.۱ | branches · branch_working_hours · rooms |
⏳ | |
| ۲.۲ | entity_type, entity_id ستون اول ایندکسهای لیست |
⏳ | |
| ۲.۳ | timezone روی شعبه از روز اول |
⏳ | افزودن بعدی = backfill زماندار |
| ۲.۴ | rooms.capacity — ظرفیت همزمان |
⏳ | اتاق سهتخته = یک ردیف با ۳ |
| ۲.۵ | branch_working_hours در GlobalTables::AGGREGATE_CHILDREN |
⏳ | |
| ۲.۶ | TenantSchemaCoverageTest سبز |
⏳ |
۳. UI
| # | مورد | وضعیت | یادداشت |
|---|---|---|---|
| ۳.۱ | BranchesPage · BranchFormPage · RoomsPage |
⏳ | |
| ۳.۲ | DataTable با skeleton و empty state فارسی |
⏳ | |
| ۳.۳ | PageHeader با backTo روی زیرصفحهها |
⏳ | |
| ۳.۴ | شهر/استان با SearchableSelect — هیچ <select> بومی |
⏳ | |
| ۳.۵ | وضعیت لیست در URL با useUrlState |
⏳ | |
| ۳.۶ | هیچ رنگ/شعاع/سایهٔ hard-code — همه از توکن | ⏳ | |
| ۳.۷ | دارکمود و حالت فشرده بررسی شد | ⏳ | |
| ۳.۸ | RTL و موبایل بررسی شد | ⏳ | |
| ۳.۹ | همهٔ رشتهها فارسی از i18n | ⏳ | |
| ۳.۱۰ | هشدار UI: «هیچ شعبهٔ فعالی باقی نمیماند» | ⏳ | |
| ۳.۱۱ | مسیرها در App.tsx |
⏳ |
۴. تست
| # | مورد | وضعیت | یادداشت |
|---|---|---|---|
| ۴.۱ | BranchCrudTest — نقشها، ۴۰۴ نه ۴۰۳ برای محیط دیگر |
⏳ | |
| ۴.۲ | WorkingHoursTest — end<=start، همپوشانی، شبانهروزی 0..1440 |
⏳ | |
| ۴.۳ | BranchDeletionTest — شعبهٔ دارای اتاق فعال → ۴۲۲ |
⏳ | |
| ۴.۴ | capacity=0 → ۴۲۲ |
⏳ | |
| ۴.۵ | phpstan analyse src/Branch بدون خطا |
⏳ |
۵. مستندات
| # | مورد | وضعیت | یادداشت |
|---|---|---|---|
| ۵.۱ | docs/api/branch.md + ثبت در docs/api/README.md |
⏳ | |
| ۵.۲ | تفسیر «شعبهٔ بدون ساعت کاری = تعریفنشده، نه همیشهباز» نوشته شد | ⏳ | تسک ۰۳ رویش حساب میکند |
| ۵.۳ | docs/architecture/tenancy.md جدول طبقهبندی بهروز شد |
⏳ |
۶. بازبینی پایانی
| # | مورد | وضعیت | یادداشت |
|---|---|---|---|
| ۶.۱ | هیچ 🔄 و ⏳ بیدلیل نمانده | ⏳ | |
| ۶.۲ | bin/phpunit کامل سبز |
⏳ | |
| ۶.۳ | --group=slot-mode-frozen سبز |
⏳ | |
| ۶.۴ | phpstan بدون خطای جدید |
⏳ | |
| ۶.۵ | npx tsc --noEmit و yarn test سبز |
⏳ | |
| ۶.۶ | TenantSchemaCoverageTest + TenantLookupInventoryTest سبز |
⏳ | |
| ۶.۷ | docs/api/* بهروز |
⏳ | |
| ۶.۸ | چکلیست UI کامل | ⏳ | |
| ۶.۹ | nobat724_front و clinic-pro-tauri بررسی شدند |
⏳ | این تسک قرارداد عمومی عوض نمیکند |
| ۶.۱۰ | commit، سپس graphify update . |
⏳ | |
| ۶.۱۱ | موارد بهتعویق با دلیل و تسک مقصد | ⏳ |