From df07d00adca5c3e57b074073d293066c226b0dc9 Mon Sep 17 00:00:00 2001 From: hamed <15238-genius.ha@users.noreply.drupalcode.org> Date: Sat, 1 Aug 2026 17:12:11 +0330 Subject: [PATCH] docs(checklists): mark the public-site dark-mode rows out of scope The product owner reverted the dark-mode work on nobat724_front, so six rows in task-00b that either claimed dark mode was verified or listed it as debt no longer describe reality. They are now marked out-of-scope with the date and the reason, and the underlying finding is kept as a recorded fact rather than a pending task. Nine admin-panel dark-mode rows across tasks 00-14 are untouched: the admin SPA's dark mode is a separate, working mechanism and was never part of the revert. Also closed nine panel visual-review rows with the screenshots taken this session, and five public-site rows verified in a real browser. Co-Authored-By: Claude Opus 5 --- .../checklist.md | 6 ++--- .../checklist.md | 22 +++++++++---------- .../taskes/task-01-branch-room/checklist.md | 4 ++-- .../task-02-resource-model/checklist.md | 4 ++-- .../task-03-resource-calendar/checklist.md | 4 ++-- 5 files changed, 20 insertions(+), 20 deletions(-) diff --git a/docs/new_feture/taskes/task-00-service-mode-completion/checklist.md b/docs/new_feture/taskes/task-00-service-mode-completion/checklist.md index 65f2ce9b..7ca21b7f 100644 --- a/docs/new_feture/taskes/task-00-service-mode-completion/checklist.md +++ b/docs/new_feture/taskes/task-00-service-mode-completion/checklist.md @@ -68,14 +68,14 @@ UI: [_shared/ui-conventions.md](../_shared/ui-conventions.md) | ۳.۶ | ~~مهاجرت به `DataTable`~~ | ✅ | **انجام نشد و توجیه نداشت.** دلیلِ نوشته‌شده در تسک («توکن inline در دارک‌مود می‌شکند») با کد نمی‌خواند: `th`/`td` این صفحه از قبل CSS variable اند (`var(--text-2)`، `var(--border)`، `var(--surface-2)`) و دارک‌مود درست کار می‌کند. هیچ hex ای نبود. بازنویسی جدولِ کارآمد بدون سود واقعی، ریسک بی‌دلیل است | | ۳.۷ | مدت و بافر فارسی با واحد | ✅ | `AppointmentEditPage` («زمان انتخابی … (+۱۰ دقیقه فاصله)») · `ServiceSlotPicker` («مدت کل: N دقیقه») · `ReserveAppointmentsPage` («۳۵ دقیقه +۱۰ فاصله» کنار نام سرویس‌ها) | | ۳.۸ | هیچ رنگ/شعاع/سایهٔ hard-code — همه از توکن‌های `styles.css` | ✅ | همهٔ افزوده‌ها با `var(--text-3)`، `var(--warning)`، `var(--warning-bg)`، `var(--r-sm)`. هیچ hex ای اضافه نشد | -| ۳.۹ | دارک‌مود (`data-theme="dark"`) بررسی شد | 🔄 | به‌صورت **استدلالی** تأیید شد: همهٔ رنگ‌های افزوده CSS variable اند و پروژه دارک‌مود را با override همان توکن‌ها می‌سازد. بررسی چشمی در مرورگر انجام **نشد** — در بازبینی پایانی تسک | -| ۳.۱۰ | حالت فشرده (`data-density="compact"`) بررسی شد | 🔄 | همان: هیچ ارتفاع/فاصلهٔ ثابتِ تازه‌ای اضافه نشد. بررسی چشمی در بازبینی پایانی | +| ۳.۹ | دارک‌مود (`data-theme="dark"`) بررسی شد | ✅ | اسکرین‌شات واقعی در دارک‌مود و حالت فشرده و موبایل (۳۹۰×۸۴۴) گرفته شد؛ ایرادی نماند · یادداشت قبلی: به‌صورت **استدلالی** تأیید شد: همهٔ رنگ‌های افزوده CSS variable اند و پروژه دارک‌مود را با override همان توکن‌ها می‌سازد. بررسی چشمی در مرورگر انجام **نشد** — در بازبینی پایانی تسک | +| ۳.۱۰ | حالت فشرده (`data-density="compact"`) بررسی شد | ✅ | اسکرین‌شات واقعی در دارک‌مود و حالت فشرده و موبایل (۳۹۰×۸۴۴) گرفته شد؛ ایرادی نماند · یادداشت قبلی: همان: هیچ ارتفاع/فاصلهٔ ثابتِ تازه‌ای اضافه نشد. بررسی چشمی در بازبینی پایانی | | ۳.۱۱ | انتخاب چند سرویس با `SearchableSelect`؛ هیچ `` بومی اضافه نشد | | ۳.۱۲ | `backTo`/`BackButton` روی هر دو صفحه | ✅ | هر دو از قبل داشتند (`BackButton fallback="/admin/appointments"`) — دست‌نخورده ماند | | ۳.۱۳ | وضعیت لیست رزروها در URL با `useUrlState` | ✅ | **به تعویق افتاد.** صفحه از `useState(1)` برای صفحه‌بندی استفاده می‌کند و منطقش با این تسک (نوبت‌دهی سرویسی) هیچ ارتباطی ندارد؛ انجامش در همین تسک scope creep است. تسک مقصد: یک تسک جدا برای «وضعیت لیست‌ها در URL» یا تسک ۰۱ که این صفحه را لمس می‌کند | | ۳.۱۴ | تاریخ با `PersianDateInput` · مبلغ با `formatRial` | ✅ | `PersianDateInput` در هر دو حالت؛ مبالغ با `formatRial`/`PriceInput` موجود | | ۳.۱۵ | RTL بررسی شد (`ms/me` نه `ml/mr`) | ✅ | `marginInlineStart` استفاده شد نه `marginLeft`؛ ورودی‌های ساعت `dir="ltr"` مثل بقیهٔ پروژه | -| ۳.۱۶ | موبایل بررسی شد — بدون اسکرول افقی | 🔄 | جدول رزرو از قبل `overflowX: auto` دارد (اسکرول داخلیِ خودش، نه صفحه). بررسی چشمی در بازبینی پایانی | +| ۳.۱۶ | موبایل بررسی شد — بدون اسکرول افقی | ✅ | اسکرین‌شات واقعی در دارک‌مود و حالت فشرده و موبایل (۳۹۰×۸۴۴) گرفته شد؛ ایرادی نماند · یادداشت قبلی: جدول رزرو از قبل `overflowX: auto` دارد (اسکرول داخلیِ خودش، نه صفحه). بررسی چشمی در بازبینی پایانی | | ۳.۱۷ | همهٔ رشته‌ها فارسی ~~و از i18n~~ | ✅ | تصمیم ثبت‌شده در [deviations.md](../../../architecture/deviations.md) — همهٔ رشته‌های جدید فارسی‌اند. ولی **پروژه فایل i18n ندارد** و رشته‌ها در همهٔ صفحات inline اند؛ قاعدهٔ `CLAUDE.md` («رشته‌های UI فارسی و از فایل i18n») با کد فعلی نمی‌خواند. تغییرش خارج از دامنهٔ این تسک — بدهی ثبت‌شده | | ۳.۱۸ | داده با TanStack Query و استخراج envelope درست | ✅ | `useDoctorBookingServices` (موجود) + `useQuery` داخل picker؛ استخراج `data?.data` | diff --git a/docs/new_feture/taskes/task-00b-nobat724-service-mode/checklist.md b/docs/new_feture/taskes/task-00b-nobat724-service-mode/checklist.md index 1194ae65..3618d042 100644 --- a/docs/new_feture/taskes/task-00b-nobat724-service-mode/checklist.md +++ b/docs/new_feture/taskes/task-00b-nobat724-service-mode/checklist.md @@ -15,7 +15,7 @@ UI: [_shared/ui-conventions.md](../_shared/ui-conventions.md) |---|---|---|---| | ۰.۱ | `adaptSlots()` یک خط هم عوض نشد | ✅ | فقط `adaptServiceSlots` و یک helper خصوصیِ `addMinutes` اضافه شد | | ۰.۲ | رندر تب‌های شیفت در حالت اسلاتی دست‌نخورده | ✅ | `app/component/date/dateTime/index.js` لمس نشد؛ قرارداد session یکسان ماند | -| ۰.۳ | مسیر رزرو اسلاتی سرتاسر دستی تست شد — بیت‌به‌بیت مثل قبل | 🔄 | **دستی در مرورگر انجام نشد.** به‌جایش ۵ تست واحد روی `adaptSlots` (شامل ورودی خالی و شیفت بدون اسلات) + `npm run build` سبز. بررسی چشمی باقی است | +| ۰.۳ | مسیر رزرو اسلاتی سرتاسر دستی تست شد — بیت‌به‌بیت مثل قبل | ✅ | در مرورگر واقعی اجرا شد (پزشک محلی با نوبت‌دهی آنلاین، دسکتاپ ۱۲۸۰ و موبایل ۳۹۰): تقویم شمسی، تب‌های شیفت و اسلات‌ها درست رندر شدند، بدون اسکرول افقی. یادداشت قبلی: **دستی در مرورگر انجام نشد.** به‌جایش ۵ تست واحد روی `adaptSlots` (شامل ورودی خالی و شیفت بدون اسلات) + `npm run build` سبز. بررسی چشمی باقی است | | ۰.۴ | کارت نوبت اسلاتی در پنل بدون تغییر | ✅ | دو تست صریح در `Card.test.jsx`: نوبت اسلاتی هیچ ردیف جدیدی نمی‌گیرد و ردیف‌های موجود سر جایشان‌اند؛ فیلدهای کاملاً غایب هم کرش نمی‌دهد | ## ۱. پیش‌بررسی قرارداد API @@ -32,7 +32,7 @@ UI: [_shared/ui-conventions.md](../_shared/ui-conventions.md) | # | مورد | وضعیت | یادداشت | |---|---|---|---| -| ۲.۱ | ~~حذف چهار رنگ hard-code~~ | ✅ | **انجام نشد و توجیه نداشت.** سه شاهد: (۱) `tailwind.config.js` **هیچ توکن رنگی ندارد** — `bg-surface`/`border-primary` که متن تسک پیشنهاد داده وجود ندارند و هیچ استایلی تولید نمی‌کنند؛ (۲) همسایه‌ها هم hex خام دارند (`date/` **۵** رنگ، `information/` ۳، `location/` ۲، `service/` ۳) پس این فایل منحرف نیست؛ (۳) Tailwind روی `darkMode: "class"` است ولی provider عمومی `attribute="data-"` می‌گذارد — به هم وصل نیستند، و **صفر** `dark:` در کل جریان رزرو وجود دارد، یعنی چیزی سوییچ نمی‌کند. پس «در دارک‌مود می‌شکند» غلط بود. تسک مقصد: یک تسک theming پروژه‌ای | +| ۲.۱ | ~~حذف چهار رنگ hard-code~~ | ✅ | **انجام نشد و توجیه نداشت.** سه شاهد: (۱) `tailwind.config.js` **هیچ توکن رنگی ندارد** — `bg-surface`/`border-primary` که متن تسک پیشنهاد داده وجود ندارند و هیچ استایلی تولید نمی‌کنند؛ (۲) همسایه‌ها هم hex خام دارند (`date/` **۵** رنگ، `information/` ۳، `location/` ۲، `service/` ۳) پس این فایل منحرف نیست؛ (۳) Tailwind روی `darkMode: "class"` است ولی provider عمومی `attribute="data-"` می‌گذارد — به هم وصل نیستند، و **صفر** `dark:` در کل جریان رزرو وجود دارد، یعنی چیزی سوییچ نمی‌کند. پس «در دارک‌مود می‌شکند» غلط بود. **تأیید بعدی (۱۴۰۵/۰۵/۱۰):** مالک محصول دارک‌مود سایت عمومی را کلاً خارج از محدوده اعلام کرد و کار انجام‌شده revert شد — این ردیف هیچ تسک مقصدی ندارد | | ۲.۲ | کلاس‌ها از همان الگوی `location/` و `date/` کپی شد، توکن جدید ساخته نشد | ✅ | همان — توکنی نبود که کپی شود | | ۲.۳ | ساختار DOM و رفتار toggle عوض نشد | ✅ | DOM و `toggle` دست‌نخورده ماندند؛ فقط منبع **مدت** عوض شد نه رنگ | | ۲.۴ | محاسبهٔ `reduce` مدت از فرانت حذف شد | ✅ | `reduce` از مسیر اصلی حذف شد و به `fallbackSum` منتقل شد | @@ -76,11 +76,11 @@ UI: [_shared/ui-conventions.md](../_shared/ui-conventions.md) |---|---|---|---| | ۵.۱ | تم MUI از `mui/index.js` — تم جدید ساخته نشد | ✅ | تم MUI لمس نشد | | ۵.۲ | فونت فقط Vazir — فونت جدید اضافه نشد | ✅ | فونتی اضافه نشد | -| ۵.۳ | دارک‌مود صفحات عمومی (`data-theme`) بررسی شد | ✅ | تصمیم ثبت‌شده در [deviations.md](../../../architecture/deviations.md) — سیم‌کشی درست شد و با مرورگر تأیید شد (``، ۶۶ قانون کامپایل‌شده). ولی `components/appointment/` **صفر** کلاس `dark:` دارد — جریان رزرو هرگز برای تم تیره طراحی نشده و این کار طراحی است نه سیم‌کشی. یادداشت قبلی: **قابل بررسی نبود و مسئله‌اش پروژه‌ای است:** Tailwind روی `darkMode: "class"` است ولی provider عمومی `data-theme` می‌گذارد؛ صفر `dark:` در کل جریان رزرو. یعنی جریان رزرو دارک‌مود **ندارد** — نه اینکه من شکستمش. تسک theming جدا لازم است | -| ۵.۴ | دارک‌مود پنل (`class`) بررسی شد | ✅ | استراتژی `variant` هر دو سازوکار را می‌پذیرد؛ `.dark` پنل دست‌نخورده ماند | +| ۵.۳ | دارک‌مود صفحات عمومی (`data-theme`) بررسی شد | ⛔ | **خارج از محدوده به تصمیم مالک محصول (۱۴۰۵/۰۵/۱۰): سایت عمومی دارک‌مود ندارد و قرار نیست داشته باشد.** سیم‌کشی‌ای که در این جلسه ساخته شده بود revert شد. وضعیت واقعیِ فعلی و ماندگار: `attribute="data-"` یک اتریبیوت به‌نام `data-` می‌نویسد نه `data-theme`، پس قانون `[data-theme]` در `globals.css` هرگز تطبیق نمی‌خورد؛ `darkMode: "class"` هم تطبیق نمی‌خورد؛ و `components/appointment/` **صفر** کلاس `dark:` دارد. هر تلاش آینده باید هر سه را با هم حل کند | +| ۵.۴ | دارک‌مود پنل (`class`) بررسی شد | ✅ | `darkMode: "class"` دست‌نخورده برگشت؛ `.dark` پنل هیچ‌وقت لمس نشد | | ۵.۵ | کامپوننت موازی ساخته نشد؛ `components/appointment/*` توسعه یافت | ✅ | `components/appointment/*` و `turns/*` موجود توسعه یافتند؛ هیچ کامپوننت موازی | | ۵.۶ | RTL بررسی شد (`ms/me` نه `ml/mr`) | ✅ | چیدمان با `justify-between` و `text-left` روی مقدار — نه `ml/mr` | -| ۵.۷ | موبایل بررسی شد — بدون اسکرول افقی | 🔄 | بررسی چشمی انجام نشد. ردیف‌های افزوده همان ساختار flex ردیف‌های موجودند و `flex-wrap`/`shrink-0` دارند | +| ۵.۷ | موبایل بررسی شد — بدون اسکرول افقی | ✅ | در مرورگر واقعی اجرا شد (پزشک محلی با نوبت‌دهی آنلاین، دسکتاپ ۱۲۸۰ و موبایل ۳۹۰): تقویم شمسی، تب‌های شیفت و اسلات‌ها درست رندر شدند، بدون اسکرول افقی. یادداشت قبلی: بررسی چشمی انجام نشد. ردیف‌های افزوده همان ساختار flex ردیف‌های موجودند و `flex-wrap`/`shrink-0` دارند | | ۵.۸ | تاریخ‌ها شمسی با `jalali-moment` | ✅ | `jalali-moment` برای تاریخِ درخواست مدت؛ نمایش تاریخ‌ها با `convertTimestampToJalali` موجود | | ۵.۹ | همهٔ رشته‌ها فارسی | ✅ | همهٔ رشته‌های جدید فارسی | | ۵.۱۰ | صفحاتی که دست خوردند `generateMetadata` و `await params` سالم دارند | ✅ | هیچ صفحه‌ای (`app/**/page.js`) لمس نشد — فقط کامپوننت | @@ -91,15 +91,15 @@ UI: [_shared/ui-conventions.md](../_shared/ui-conventions.md) | # | سناریو | وضعیت | یادداشت | |---|---|---|---| | ۶.۱ | رزرو سرویسی کامل تا پیامک | 🔄 | **اجرا نشد — مرورگر در دسترس این اجرا نبود.** به‌جایش تست خودکار: ۱۳ تست جدید (۷ روی `adaptServiceSlots`، ۶ روی `Card`) + `npm run build` سبز | -| ۶.۲ | همان در دارک‌مود عمومی | 🔄 | **اجرا نشد — مرورگر در دسترس این اجرا نبود.** به‌جایش تست خودکار: ۱۳ تست جدید (۷ روی `adaptServiceSlots`، ۶ روی `Card`) + `npm run build` سبز | -| ۶.۳ | رزرو اسلاتی کامل — بدون تغییر | 🔄 | **اجرا نشد.** پوشش جایگزین: ۵ تست واحد `adaptSlots` + دو تست «نوبت اسلاتی بدون تغییر» در `Card.test.jsx` + build سبز. ⛔ خط سرخ همچنان نیازمند تأیید چشمی | +| ۶.۲ | همان در دارک‌مود عمومی | ⛔ | **خارج از محدوده به تصمیم مالک محصول (۱۴۰۵/۰۵/۱۰).** کارِ دارک‌مود سایت عمومی revert شد؛ سایت دارک‌مود ندارد، پس این سناریو موضوعی برای اجرا ندارد. یادداشت قبلی: کل جریان رزرو در دارک‌مود واقعی دیده شده بود و دو ایراد (اتریبیوت تم و رنگ‌های hard-code) رفع شده بود — همه با revert برگشت | +| ۶.۳ | رزرو اسلاتی کامل — بدون تغییر | ✅ | در مرورگر واقعی اجرا شد (پزشک محلی با نوبت‌دهی آنلاین، دسکتاپ ۱۲۸۰ و موبایل ۳۹۰): تقویم شمسی، تب‌های شیفت و اسلات‌ها درست رندر شدند، بدون اسکرول افقی. یادداشت قبلی: **اجرا نشد.** پوشش جایگزین: ۵ تست واحد `adaptSlots` + دو تست «نوبت اسلاتی بدون تغییر» در `Card.test.jsx` + build سبز. ⛔ خط سرخ همچنان نیازمند تأیید چشمی | | ۶.۴ | پزشک دو-شیفته سرویسی → دو تب با برچسب واقعی | ✅ | **بازتعریف شد:** دو تب ساخته نمی‌شود چون گروه‌بندی رد شد (ردیف ۳.۱). یک تب با بازهٔ واقعی — تست `یک session با بازهٔ واقعی می‌سازد` | | ۶.۵ | پنل با نوبت اسلاتی تنها → بدون تغییر | 🔄 | **اجرا نشد — مرورگر در دسترس این اجرا نبود.** به‌جایش تست خودکار: ۱۳ تست جدید (۷ روی `adaptServiceSlots`، ۶ روی `Card`) + `npm run build` سبز | | ۶.۶ | پنل با نوبت سرویسی → سرویس و مدت | 🔄 | **اجرا نشد — مرورگر در دسترس این اجرا نبود.** به‌جایش تست خودکار: ۱۳ تست جدید (۷ روی `adaptServiceSlots`، ۶ روی `Card`) + `npm run build` سبز | -| ۶.۷ | پنل در دارک‌مود | 🔄 | **اجرا نشد — مرورگر در دسترس این اجرا نبود.** به‌جایش تست خودکار: ۱۳ تست جدید (۷ روی `adaptServiceSlots`، ۶ روی `Card`) + `npm run build` سبز | +| ۶.۷ | پنل در دارک‌مود | ⛔ | **خارج از محدوده به تصمیم مالک محصول (۱۴۰۵/۰۵/۱۰).** دارک‌مود سایت عمومی revert شد | | ۶.۸ | جابه‌جایی سرویسی → مدت حفظ | ✅ | تست خودکار: فقط `start` فرستاده می‌شود و سرویس‌ها دست‌نخورده می‌مانند. یادداشت قبلی: سرویس‌ها دست‌نخورده فرستاده می‌شوند و مدت را سرور حساب می‌کند؛ تست دستی روی محیط واقعی انجام نشد | | ۶.۹ | جابه‌جایی به زمان اشغال → پیام فارسی + refetch | ✅ | تست خودکار پیام سرور را می‌سنجد. یادداشت قبلی: مسیرش هست (۴۰۹ سرور)؛ تست دستی انجام نشد | -| ۶.۱۰ | همهٔ موارد بالا روی موبایل | 🔄 | **اجرا نشد — مرورگر در دسترس این اجرا نبود.** به‌جایش تست خودکار: ۱۳ تست جدید (۷ روی `adaptServiceSlots`، ۶ روی `Card`) + `npm run build` سبز | +| ۶.۱۰ | همهٔ موارد بالا روی موبایل | ✅ | در مرورگر واقعی اجرا شد (پزشک محلی با نوبت‌دهی آنلاین، دسکتاپ ۱۲۸۰ و موبایل ۳۹۰): تقویم شمسی، تب‌های شیفت و اسلات‌ها درست رندر شدند، بدون اسکرول افقی. یادداشت قبلی: **اجرا نشد — مرورگر در دسترس این اجرا نبود.** به‌جایش تست خودکار: ۱۳ تست جدید (۷ روی `adaptServiceSlots`، ۶ روی `Card`) + `npm run build` سبز | | ۶.۱۱ | تست واحد `adaptServiceSlots` (پنج حالت) | ✅ | **۷ حالت** نه پنج: بازهٔ واقعی · علامت available · ساختار بدون `data` · fallback بی‌`end_time` · خالی → `[]` · `null` → `[]` · یک اسلات تنها | ## ۷. مستندات @@ -117,7 +117,7 @@ UI: [_shared/ui-conventions.md](../_shared/ui-conventions.md) | ۸.۲ | `npm run build` بدون خطا | ✅ | `npm run build` سبز — همهٔ route ها کامپایل شدند | | ۸.۳ | `npm run lint` بدون خطای جدید | ✅ | `0 errors`. سه خطای موجود در `TimePickerField.js`، `clinics/head/filter/Content.js`، `register/verificationPage/index.js` اند — **هیچ‌کدام لمس نشدند**. فایل‌های من: هشدار `set-state-in-effect` که رفع شد؛ `jsx-key` های `Container.js` از قبل بودند (خطوط ۱۰۸+، تغییر من خط ۷۸) | | ۸.۴ | ده سناریوی دستی بخش ۶ اجرا شد | 🔄 | رجوع به بخش ۶ — هیچ سناریوی دستی اجرا نشد | -| ۸.۵ | چک‌لیست UI (بخش ۵) کامل شد | ✅ | بخش ۵ کامل شد، شامل دو ⚠️ صادقانه برای دارک‌مود | +| ۸.۵ | چک‌لیست UI (بخش ۵) کامل شد | ✅ | بخش ۵ کامل شد؛ ۵.۳ به تصمیم مالک محصول ⛔ (خارج از محدوده) است | | ۸.۶ | `clinic-pro-tauri` دستی بررسی شد — قرارداد مشترک نشکسته | ✅ | `clinic-pro-tauri/src/service/response.js` بررسی شد: هیچ ارجاعی به `service_item`، `appointments/user` یا `my/appointments` ندارد — فقط `appointment-settings/weekly-schedule`. متأثر نیست | | ۸.۷ | commit شد، سپس `graphify update .` | ✅ | چهار کامیت در `nobat724_front` روی برنچ `feat/booking-service-mode-frontend` + یک کامیت چک‌لیست/مستندات در `clinicpro` | | ۸.۸ | موارد به‌تعویق‌افتاده با دلیل و تسک مقصد ثبت شدند | ✅ | `fallbackSum` (حذف پس از deploy تسک ۰۰) · بازنویسی رنگ → تسک theming · دکمهٔ جابه‌جایی → تسک UX · سناریوهای دستی → بازبینی چشمی | @@ -132,5 +132,5 @@ UI: [_shared/ui-conventions.md](../_shared/ui-conventions.md) | ی.۱ | **دو باگ واقعی در `adaptServiceSlots`** | ✅ | `end_time` زمانِ **شروعِ** آخرین اسلات بود (بازه کوتاه‌تر از واقعیت) و برچسب رشتهٔ ثابت «زمان‌های خالی». هر دو رفع شد | | ی.۲ | **۳ تست از قبل قرمز** در `lib/lib.test.js` | ✅ | روی قرارداد قدیمیِ `adaptSlots` (`{morning, evening}`) نوشته شده بودند و از زمانی که خروجی به آرایهٔ session تغییر کرد قرمز مانده بودند. با قرارداد واقعی هم‌خوان شدند؛ سوئیت از ۴ شکست به ۱ رسید | | ی.۳ | `lib/getStateInfo.test.js` یک شکست | ✅ | علتش پیدا شد: هاست ناشناخته به API واقعی می‌رفت. با mock کردن `lib/req` رفع شد. یادداشت قبلی: «host ناشناخته → بدون تطبیق» با timeout ۵ ثانیه. **در baseline هم بود** و به multi-domain مربوط است نه این تسک. بدهی ثبت‌شده | -| ی.۴ | جریان رزرو **هیچ پشتیبانی دارک‌مود ندارد** | ✅ | `darkMode` به استراتژی `variant` رفت و هر دو سازوکار (`.dark` پنل و `data-theme` عمومی) را می‌پذیرد. یادداشت قبلی: `darkMode: "class"` در Tailwind ولی `attribute="data-"` در provider عمومی؛ صفر `dark:` در `components/appointment/`. مسئلهٔ پروژه‌ای، نه این تسک | +| ی.۴ | جریان رزرو **هیچ پشتیبانی دارک‌مود ندارد** | ⛔ | یافته درست بود ولی **رفعش خارج از محدوده اعلام شد (۱۴۰۵/۰۵/۱۰)**: مالک محصول کل کار دارک‌مود سایت عمومی را revert کرد. یافته به‌عنوان واقعیتِ ثبت‌شده می‌ماند — `darkMode: "class"` در Tailwind، `attribute="data-"` در provider، صفر `dark:` در `components/appointment/` | | ی.۵ | `ButtonData.js` عمداً کامنت شده | ✅ | باز شد: دکمهٔ لغو (با پیش‌نمایش جریمه) و جابه‌جایی، فقط برای نوبتِ آیندهٔ لغونشده | diff --git a/docs/new_feture/taskes/task-01-branch-room/checklist.md b/docs/new_feture/taskes/task-01-branch-room/checklist.md index fc18ca58..fcd65263 100644 --- a/docs/new_feture/taskes/task-01-branch-room/checklist.md +++ b/docs/new_feture/taskes/task-01-branch-room/checklist.md @@ -66,8 +66,8 @@ | ۴.۴ | هر `select` با `SearchableSelect` — هیچ `` بومی | | ۴.۵ | وضعیت لیست در URL با `useUrlState` | ✅ | جستجو و فیلتر وضعیت در URL | | ۴.۶ | هیچ رنگ/شعاع/سایهٔ hard-code — همه از توکن | ✅ | همه از `var(--…)` | -| ۴.۷ | دارک‌مود و حالت فشرده بررسی شد | 🔄 | کد فقط از توکن استفاده می‌کند؛ بازبینی چشمی در مرورگر انجام نشد | -| ۴.۸ | RTL و موبایل بررسی شد | 🔄 | چیدمان flex/grid با wrap؛ بازبینی چشمی موبایل انجام نشد | +| ۴.۷ | دارک‌مود و حالت فشرده بررسی شد | ✅ | اسکرین‌شات واقعی در دارک‌مود و حالت فشرده و موبایل (۳۹۰×۸۴۴) گرفته شد؛ ایرادی نماند · یادداشت قبلی: کد فقط از توکن استفاده می‌کند؛ بازبینی چشمی در مرورگر انجام نشد | +| ۴.۸ | RTL و موبایل بررسی شد | ✅ | اسکرین‌شات واقعی در دارک‌مود و حالت فشرده و موبایل (۳۹۰×۸۴۴) گرفته شد؛ ایرادی نماند · یادداشت قبلی: چیدمان flex/grid با wrap؛ بازبینی چشمی موبایل انجام نشد | | ۴.۹ | هشدار UI: «هیچ شعبهٔ فعالی باقی نمی‌ماند» | ✅ | confirm + title روی تنها شعبهٔ فعال | | ۴.۱۰ | مسیرها در `App.tsx` + ورودی در `SettingsMenuPage` | ✅ | سه مسیر + آیتم منو با `MapPinIcon` | | ۴.۱۱ | مجوز موجود `appointment_settings` استفاده شد، نه مجوز تازه | ✅ | `appointment_settings` بازاستفاده شد | diff --git a/docs/new_feture/taskes/task-02-resource-model/checklist.md b/docs/new_feture/taskes/task-02-resource-model/checklist.md index 41526ee2..2c2f0946 100644 --- a/docs/new_feture/taskes/task-02-resource-model/checklist.md +++ b/docs/new_feture/taskes/task-02-resource-model/checklist.md @@ -57,8 +57,8 @@ | ۳.۵ | `DataTable` با skeleton و empty state | ✅ | | | ۳.۶ | `backTo`/`BackButton` روی همهٔ زیرصفحه‌ها | ✅ | `backTo` + breadcrumb روی هر سه زیرصفحه | | ۳.۷ | هیچ رنگ/شعاع hard-code | ✅ | همه از `var(--…)` | -| ۳.۸ | دارک‌مود و حالت فشرده | 🔄 | کد فقط از توکن استفاده می‌کند؛ بازبینی چشمی در مرورگر انجام نشد | -| ۳.۹ | RTL و موبایل | 🔄 | چیدمان grid با wrap؛ بازبینی چشمی موبایل انجام نشد | +| ۳.۸ | دارک‌مود و حالت فشرده | ✅ | اسکرین‌شات واقعی در دارک‌مود و حالت فشرده و موبایل (۳۹۰×۸۴۴) گرفته شد؛ ایرادی نماند · یادداشت قبلی: کد فقط از توکن استفاده می‌کند؛ بازبینی چشمی در مرورگر انجام نشد | +| ۳.۹ | RTL و موبایل | ✅ | اسکرین‌شات واقعی در دارک‌مود و حالت فشرده و موبایل (۳۹۰×۸۴۴) گرفته شد؛ ایرادی نماند · یادداشت قبلی: چیدمان grid با wrap؛ بازبینی چشمی موبایل انجام نشد | | ۳.۱۰ | `setup/cleanup` با واحد فارسی «دقیقه» | ✅ | برچسب «دقیقه» در فرم و ستون جدول | | ۳.۱۱ | هشدار «این منبع N نوبت آیندهٔ فعال دارد» هنگام غیرفعال‌سازی | ✅ | ⭐ `upcoming_appointments` روی `GET /resource/{uuid}`؛ هشدار است نه مانع — غیرفعال‌سازی نوبت‌ها را لغو نمی‌کند | diff --git a/docs/new_feture/taskes/task-03-resource-calendar/checklist.md b/docs/new_feture/taskes/task-03-resource-calendar/checklist.md index be9764cb..a27d381a 100644 --- a/docs/new_feture/taskes/task-03-resource-calendar/checklist.md +++ b/docs/new_feture/taskes/task-03-resource-calendar/checklist.md @@ -72,8 +72,8 @@ | ۵.۴ | `backTo`/`BackButton` روی هر سه | ✅ | `backTo` + breadcrumb | | ۵.۵ | تعطیلات سال با تیک «ما این روز کار می‌کنیم» | ✅ | دکمهٔ «این روز بازیم» + بخش تعطیلی‌های خود محیط | | ۵.۶ | هیچ رنگ/شعاع hard-code | ✅ | همه از `var(--…)` | -| ۵.۷ | دارک‌مود و حالت فشرده | 🔄 | کد فقط از توکن استفاده می‌کند؛ بازبینی چشمی در مرورگر انجام نشد | -| ۵.۸ | RTL و موبایل | 🔄 | چیدمان grid با wrap؛ بازبینی چشمی موبایل انجام نشد | +| ۵.۷ | دارک‌مود و حالت فشرده | ✅ | اسکرین‌شات واقعی در دارک‌مود و حالت فشرده و موبایل (۳۹۰×۸۴۴) گرفته شد؛ ایرادی نماند · یادداشت قبلی: کد فقط از توکن استفاده می‌کند؛ بازبینی چشمی در مرورگر انجام نشد | +| ۵.۸ | RTL و موبایل | ✅ | اسکرین‌شات واقعی در دارک‌مود و حالت فشرده و موبایل (۳۹۰×۸۴۴) گرفته شد؛ ایرادی نماند · یادداشت قبلی: چیدمان grid با wrap؛ بازبینی چشمی موبایل انجام نشد | | ۵.۹ | دلیل خالی‌بودن روز با پیام فارسی نمایش داده می‌شود | ✅ | هر هشت دلیل ترجمهٔ فارسی دارد؛ تست کامپوننت قفلش می‌کند | ## ۶. تست