- Add task for completing service mode in clinicpro with detailed objectives and acceptance criteria. - Create architecture documentation for task 00b, outlining involved components and necessary changes. - Develop checklist for task 00b to ensure all requirements are met. - Document implementation notes for task 00b, emphasizing API contract checks and design system adherence. - Update task documentation for task 00b, specifying goals and current issues with service mode.
86 lines
4.4 KiB
Markdown
86 lines
4.4 KiB
Markdown
# تعریف «تمامشده» و قالب چکلیست
|
||
|
||
هر تسک یک `checklist.md` دارد. **پیش از اعلام پایان تسک، همهٔ ردیفها بازبینی میشوند و
|
||
هیچ ردیفی در `🔄` یا `⏳` نمیماند.**
|
||
|
||
---
|
||
|
||
## نمادها
|
||
|
||
| نماد | معنی | اجازهٔ باقیماندن در پایان تسک |
|
||
|---|---|---|
|
||
| ✅ | انجامشده و تأییدشده | بله |
|
||
| 🔄 | در حال انجام | **نه** — یا ✅ شود یا با دلیل صریح به ⏳ منتقل شود |
|
||
| ⏳ | انجامنشده | **نه** — یا ✅ شود یا با دلیل مکتوب و تسک مقصد به تعویق برود |
|
||
| ⚠️ | نیازمند بررسی یا تست | **نه** — باید تعیین تکلیف شود |
|
||
|
||
`⏳` تنها وقتی در پایان مجاز است که کنارش نوشته شده باشد: **چرا** به تعویق افتاد و
|
||
**کدام تسک** آن را برمیدارد. `⏳ بدون دلیل = تسک تمام نشده.`
|
||
|
||
---
|
||
|
||
## قالب `checklist.md`
|
||
|
||
```markdown
|
||
# چکلیست — تسک XX
|
||
|
||
وضعیت کلی: ⏳ شروع نشده | 🔄 در حال انجام | ✅ تمامشده
|
||
آخرین بازبینی: —
|
||
|
||
## ۰. خط سرخها (رجوع: _shared/red-lines.md)
|
||
| # | مورد | وضعیت | یادداشت |
|
||
|---|---|---|---|
|
||
| ۰.۱ | منطق اسلاتی دستکاری نشد · `--group=slot-mode-frozen` سبز | ⏳ | |
|
||
| ۰.۲ | هیچ متد موجود `SlotCalculatorService` ویرایش نشد | ⏳ | |
|
||
| ۰.۳ | قرارداد `appointment-slots` و `month-availability` دستنخورده | ⏳ | |
|
||
|
||
## ۱. بکاند
|
||
## ۲. دیتابیس و مهاجرت
|
||
## ۳. UI (رجوع: _shared/ui-conventions.md)
|
||
## ۴. تست
|
||
## ۵. مستندات
|
||
## ۶. بازبینی پایانی
|
||
```
|
||
|
||
---
|
||
|
||
## بخش ۶ — بازبینی پایانی، یکسان در همهٔ تسکها
|
||
|
||
```markdown
|
||
| # | مورد | وضعیت | یادداشت |
|
||
|---|---|---|---|
|
||
| ۶.۱ | همهٔ ردیفهای بالا وضعیت نهایی دارند (هیچ 🔄 و ⏳ بیدلیل) | ⏳ | |
|
||
| ۶.۲ | `ddev exec php bin/phpunit` کامل سبز | ⏳ | |
|
||
| ۶.۳ | `ddev exec php bin/phpunit --group=slot-mode-frozen` سبز | ⏳ | |
|
||
| ۶.۴ | `ddev exec php vendor/bin/phpstan analyse` بدون خطای جدید | ⏳ | |
|
||
| ۶.۵ | `npx tsc --noEmit` بدون خطا | ⏳ | |
|
||
| ۶.۶ | `yarn test` سبز | ⏳ | |
|
||
| ۶.۷ | `TenantSchemaCoverageTest` و `TenantLookupInventoryTest` سبز | ⏳ | |
|
||
| ۶.۸ | `docs/api/*` بهروز شد (قاعدهٔ ثابت پروژه) | ⏳ | |
|
||
| ۶.۹ | چکلیست UI کامل شد (اگر تسک صفحه/کامپوننت دارد) | ⏳ | |
|
||
| ۶.۱۰ | مصرفکنندگان دیگر دستی بررسی شدند: `nobat724_front` · `clinic-pro-tauri` | ⏳ | |
|
||
| ۶.۱۱ | تغییرات commit شد، سپس `graphify update .` اجرا شد | ⏳ | |
|
||
| ۶.۱۲ | موارد بهتعویقافتاده با دلیل و تسک مقصد ثبت شدند | ⏳ | |
|
||
```
|
||
|
||
ردیف ۶.۱۰ در build هیچکدام از آن دو ریپو خطا نمیدهد — بررسی فقط دستی ممکن است.
|
||
ردیف ۶.۱۱ ترتیبش مهم است: اول commit، بعد `graphify update`.
|
||
|
||
---
|
||
|
||
## قواعد ثابت پروژه که در هر تسک اعمال میشوند
|
||
|
||
از `CLAUDE.md` و `docs/architecture/tenancy.md`:
|
||
|
||
1. entity جدید یا `TenantOwnedTrait` میگیرد یا با دلیل در `GlobalTables` ثبت میشود
|
||
2. `entity_type, entity_id` ستونهای **اول** هر ایندکس ترکیبیِ لیست
|
||
3. هر uuid از request با `TenantOwnershipChecker` سنجیده میشود
|
||
4. timestamp ها `int` یونیکس، نه `DateTime` · نمایش شمسی فقط در UI
|
||
5. کنترلر نازک · `extends BaseController` · `success()/paginated()/error()`
|
||
6. منطق در Service، کوئری در Repository، وابستگی با constructor injection
|
||
7. لیستهای ادمین با `getArrayResult()`
|
||
8. API جدید فقط وقتی هیچ endpoint موجودی — حتی با توسعه — کافی نباشد؛ **دلیلش نوشته شود**
|
||
9. تست موفق + خطا + مرزی · بدون اجرای موفق تست، تسک تمام نیست
|
||
10. کد و کامیت و مستندات انگلیسی · رشتههای UI فارسی از i18n
|
||
11. SOLID · کلاس/کامپوننت چندمسئولیتی ننویس
|