Files
clinicpro/docs/new_feture/taskes/task-00b-nobat724-service-mode/checklist.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

7.8 KiB
Raw Blame History

چک‌لیست — تسک ۰۰ب (سازگارسازی nobat724_front)

وضعیت کلی: شروع نشده آخرین بازبینی:

قواعد: _shared/definition-of-done.md · خط سرخ‌ها: _shared/red-lines.md · UI: _shared/ui-conventions.md


۰. خط سرخ — مسیر اسلاتی سایت

# مورد وضعیت یادداشت
۰.۱ adaptSlots() یک خط هم عوض نشد
۰ رندر تب‌های شیفت در حالت اسلاتی دست‌نخورده
۰ مسیر رزرو اسلاتی سرتاسر دستی تست شد — بیت‌به‌بیت مثل قبل سناریو ۳
۰ کارت نوبت اسلاتی در پنل بدون تغییر سناریو ۵

۱. پیش‌بررسی قرارداد API

# مورد وضعیت یادداشت
۱.۱ appointments/user فیلد service_items دارد اگر نه → به تسک ۰۰ برگردان
۱ appointments/user فیلد service_total_minutes دارد همان
۱ هر start_times[i] فیلد end_time دارد
۱ total_duration_minutes و buffer_minutes در پاسخ هستند
۱.۵ exclude_appointment_uuid روی appointment-service-slots کار می‌کند تسک ۰۰ ساخته

۲. انتخاب سرویس — دیزاین و منطق

# مورد وضعیت یادداشت
۲.۱ چهار رنگ hard-code (#3B3B3B #7A7A7A #5559CE bg-white) حذف شد
۲.۲ کلاس‌ها از همان الگوی location/ و date/ کپی شد، توکن جدید ساخته نشد
۲.۳ ساختار DOM و رفتار toggle عوض نشد فقط منبع رنگ
۲.۴ محاسبهٔ reduce مدت از فرانت حذف شد
۲.۵ مدت از total_duration_minutes بک‌اند می‌آید
۲.۶ fallbackSum با console.warn — موقت، تسک مقصد حذفش ثبت شد
۲.۷ برچسب «مدت تقریبی» پیش از انتخاب روز، «مدت نوبت» پس از آن
۲.۸ انتخاب صفر سرویس → دکمهٔ ادامه غیرفعال با راهنمای فارسی
۲.۹ محل سرویسی بدون سرویس bookable → پیام روشن + پیشنهاد محل دیگر

۳. adaptServiceSlots شیفت‌آگاه

# مورد وضعیت یادداشت
۳.۱ گروه‌بندی بر اساس شکاف زمانی پیاده شد
۳.۲ آستانه = max(60, durationMin) وگرنه نوبت بلند به تب‌های تک‌عضوی می‌شکند
۳.۳ برچسب واقعی "HH:MM - HH:MM" — نه «زمان‌های خالی» ثابت
۳.۴ end_time از پاسخ بک‌اند، addMinutes فقط fallback
۳.۵ کامنت: هیوریستیک است، راه دقیق endpoint تسک ۰۶
۳.۶ start_times خالی → [] و پیام دلیل‌دار در UI

۴. پنل کاربر — سرویس، مدت، جابه‌جایی

# مورد وضعیت یادداشت
۴.۱ Card.js نام سرویس‌ها را نشان می‌دهد (با شرط &&)
۴.۲ Card.js مدت را نشان می‌دهد (با شرط &&)
۴.۳ DetailLg.js و DetailSm.js هر دو
۴.۴ نوبت رزرو: فقط سرویس، بدون مدت زمان ندارد
۴.۵ نوبت سرویسی بدون service_items → «—»، بدون کرش
۴.۶ services/response.js: serviceReschedule اضافه شد
۴.۷ services/response.js: getServiceSlotsForReschedule با exclude_appointment_uuid
۴.۸ ButtonData.js دکمهٔ جابه‌جایی + مودال موجود
۴.۹ انتخابگر زمان: components/appointment/date/ بازاستفاده شد، نه ساخت جدید
۴.۱۰ بیمار مدت وارد نمی‌کند — بک‌اند حساب می‌کند
۴.۱۱ خطای بک‌اند با پیام فارسی خودش نمایش داده می‌شود نه «خطای نامشخص»
۴.۱۲ پس از خطای تداخل، refetchSlots() اجرا می‌شود

۵. UI — قواعد سایت

# مورد وضعیت یادداشت
۵.۱ تم MUI از mui/index.js — تم جدید ساخته نشد
۵ فونت فقط Vazir — فونت جدید اضافه نشد
۵ دارک‌مود صفحات عمومی (data-theme) بررسی شد سناریو ۲
۵ دارک‌مود پنل (class) بررسی شد سناریو ۷ — مکانیزم متفاوت
۵.۵ کامپوننت موازی ساخته نشد؛ components/appointment/* توسعه یافت
۵ RTL بررسی شد (ms/me نه ml/mr)
۵.۷ موبایل بررسی شد — بدون اسکرول افقی سناریو ۱۰
۵ تاریخ‌ها شمسی با jalali-moment
۵ همهٔ رشته‌ها فارسی
۵.۱۰ صفحاتی که دست خوردند generateMetadata و await params سالم دارند
۵.۱۱ دامنه گسترش نیافت — صفحهٔ رزرو بازطراحی نشد انحراف بقیهٔ مراحل، اگر بود، ⚠️ ثبت شود

۶. تست دستی — ده سناریو

# سناریو وضعیت یادداشت
۶.۱ رزرو سرویسی کامل تا پیامک
۶.۲ همان در دارک‌مود عمومی
۶.۳ رزرو اسلاتی کامل — بدون تغییر خط سرخ
۶.۴ پزشک دو-شیفته سرویسی → دو تب با برچسب واقعی
۶.۵ پنل با نوبت اسلاتی تنها → بدون تغییر
۶.۶ پنل با نوبت سرویسی → سرویس و مدت
۶.۷ پنل در دارک‌مود
۶.۸ جابه‌جایی سرویسی → مدت حفظ
۶.۹ جابه‌جایی به زمان اشغال → پیام فارسی + refetch
۶.۱۰ همهٔ موارد بالا روی موبایل
۶.۱۱ تست واحد adaptServiceSlots (پنج حالت) تابع خالص، بهترین کاندید

۷. مستندات

# مورد وضعیت یادداشت
۷.۱ nobat724_front/CLAUDE.md بخش «حالت‌های نوبت‌دهی»
۷ یادداشت هیوریستیک شیفت در clinicpro/docs/api/appointment.md

۸. بازبینی پایانی

# مورد وضعیت یادداشت
۸.۱ همهٔ ردیف‌های بالا وضعیت نهایی دارند (هیچ 🔄 و بی‌دلیل)
۸.۲ npm run build بدون خطا
۸.۳ npm run lint بدون خطای جدید
۸.۴ ده سناریوی دستی بخش ۶ اجرا شد
۸.۵ چک‌لیست UI (بخش ۵) کامل شد
۸.۶ clinic-pro-tauri دستی بررسی شد — قرارداد مشترک نشکسته همان service_item تکی
۸.۷ commit شد، سپس graphify update .
۸.۸ موارد به‌تعویق‌افتاده با دلیل و تسک مقصد ثبت شدند fallbackSum