Files
clinicpro/docs/new_feture/taskes/README.md
T
hamed 021d0eb6b2 feat: implement cancellation policy, no-show tracking, and waitlist management
- Add implementation notes for cancellation and waitlist features.
- Create task documentation outlining goals, current status, and acceptance criteria for cancellation policy and resource utilization reporting.
- Establish architecture for domain events and outbox pattern to ensure reliable event publishing.
- Define database schema for domain events and necessary queries for resource utilization and plan accuracy reports.
- Implement detailed implementation notes covering edge cases, testing strategies, and documentation requirements.
2026-07-30 11:43:58 +03:30

5.8 KiB
Raw Blame History

تسک‌های موتور نوبت‌دهی چندمنبعی Clinic Pro

پیاده‌سازی تدریجی clinic-pro-mostanad-sade.md روی کد موجود. گزارش وضعیت فعلی و تحلیل شکاف: 00-current-state-report.md

پیش‌فرض کلیدی: بازنویسی نداریم. نوبت‌دهی اسلاتی (booking_mode=slot) و نوبت‌دهی سرویسیِ فعلی (booking_mode=service) تا آخر این مسیر بدون تغییر رفتار کار می‌کنند. حالت جدید booking_mode=resource کنارشان اضافه می‌شود.


لیست تسک‌ها

تسک ماژول Endpoint جدید وابستگی زمان
۰۱ شعبه و اتاق ۸ ۱۰-۱۲h
۰۲ منبع، نوع منبع، مهارت، استخر ۱۴ ۰۱ ۱۴-۱۸h
۰۳ تقویم منبع، مرخصی، تعطیلات ملی ۹ ۰۱، ۰۲ ۱۲-۱۴h
۰۴ کاتالوگ خدمات v2 (گروه آیتم، دو نوع زمان) ۱۰ ۰۱ ۱۴-۱۶h
۰۵ بخش‌های نوبت و سازندهٔ برنامه ۳ ۰۲، ۰۴ ۱۶-۲۰h
۰۶ موتور جستجوی وقت چندمنبعی ۲ ۰۳، ۰۵ ۲۰-۲۴h
۰۷ رزرو موقت و ثبت نهایی چندمنبعی ۴ ۰۶ ۱۶-۲۰h
۰۸ لیست قیمت بازه‌دار و snapshot فاکتور ۷ ۰۴، ۰۷ ۱۲-۱۴h
۰۹ موتور قوانین شش‌دسته‌ای ۶ ۰۵، ۰۶، ۰۸ ۲۰-۲۴h
۱۰ فرم ساخت قانون + محیط آزمایش ۲ ۰۹ ۱۰-۱۲h
۱۱ پکیج و دفتر اعتبار جلسات ۸ ۰۸ ۱۰-۱۲h
۱۲ دوره درمان ۹ ۰۷، ۱۱ ۱۶-۲۰h
۱۳ سیاست لغو، عدم حضور، لیست انتظار ۷ ۰۷ ۱۰-۱۲h
۱۴ رویدادهای دامنه و گزارش بهره‌وری ۳ ۰۷ ۸-۱۰h

مجموع endpoint جدید: ~۹۲ · مجموع زمان: ۱۹۰ تا ۲۲۸ ساعت


ساختار هر تسک

task-XX-name/
├── task.md                 ← شرح، دامنه، endpoint ها، معیار پذیرش، زمان
├── architecture.md         ← فایل‌ها، entity ها، سرویس‌ها، لایه‌ها
├── database.md             ← جداول، ستون‌ها، ایندکس‌ها، migration
├── implementation_notes.md ← نکات فنی، edge case، سازگاری عقب‌رو، تست
└── user_flow.md            ← (تسک‌های پیچیده) جریان کاربری

ترتیب پیشنهادی اجرا

۰۱ ─┬─ ۰۲ ── ۰۳ ─┐
    └─ ۰۴ ── ۰۵ ─┴─ ۰۶ ── ۰۷ ─┬─ ۰۸ ─┬─ ۰۹ ── ۱۰
                              │      └─ ۱۱ ── ۱۲
                              ├─ ۱۳
                              └─ ۱۴

فاز اول (هستهٔ قابل عرضه): ۰۱ تا ۰۸ — بعد از آن یک کلینیک زیبایی با اتاق، دستگاه و اپراتور می‌تواند واقعاً نوبت بگیرد.


قواعد مشترک همهٔ تسک‌ها

قواعد پروژه در CLAUDE.md و docs/architecture/tenancy.md بر همهٔ این تسک‌ها حاکم‌اند. مواردی که در هر تسک باید رعایت شوند:

  1. هر entity جدید یا TenantOwnedTrait می‌گیرد یا در GlobalTables با دلیل ثبت می‌شود؛ TenantSchemaCoverageTest را اجرا کن.
  2. entity_type, entity_id ستون‌های اول هر ایندکس ترکیبی لیست.
  3. هر uuid که از request می‌آید باید با TenantOwnershipChecker سنجیده شود؛ TenantLookupInventoryTest شمارنده دارد.
  4. timestamp ها int (Unix)، نه DateTime. نمایش شمسی فقط در UI.
  5. کنترلر نازک، extends BaseController، پاسخ با success()/paginated()/error().
  6. هر endpoint جدید یا تغییر یافته → به‌روزرسانی docs/api/*.md در همان نشست.
  7. تست موفق + خطا + مرزی برای هر تسک، وگرنه تسک تمام نیست.
  8. رشته‌های UI فارسی، کد و کامیت انگلیسی.
  9. سازگاری عقب‌رو: nobat724_front و clinic-pro-tauri مصرف‌کنندهٔ همین APIها هستند و در build خطا نمی‌دهند — هر تغییر قرارداد باید دستی بررسی شود.

سازگاری با نوبت‌دهی فعلی

حالت منبع تنظیم چه زمانی
slot WeeklySchedule.meta.booking_mode اسلات ثابت duration_per_patient — رفتار پیش‌فرض امروز
service همان طول = جمع مدت سرویس‌ها + buffer — پیاده‌شده، تک‌منبعی
resource همان جدید — برنامهٔ چندبخشی + چند منبع (تسک ۰۵ به بعد)

booking_mode پس از اولین ثبت قفل می‌شود (WeeklySchedule::getStoredBookingMode()). تسک ۰۶ باید مسیر ارتقای داوطلبانهٔ service → resource را باز کند، بدون اجبار.