Files
clinicpro/docs/new_feture/taskes/_shared/definition-of-done.md
T
hamed 158dcb58aa feat: implement service mode completion for nobat724_front
- 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.
2026-07-30 11:56:08 +03:30

86 lines
4.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# تعریف «تمام‌شده» و قالب چک‌لیست
هر تسک یک `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 · کلاس/کامپوننت چندمسئولیتی ننویس