diff --git a/.claude/prompt/appointment-detail-fields-fix.md b/.claude/prompt/appointment-detail-fields-fix.md
new file mode 100644
index 0000000..24e2ae9
--- /dev/null
+++ b/.claude/prompt/appointment-detail-fields-fix.md
@@ -0,0 +1,63 @@
+# اصلاح فیلدهای «جزئیات نوبت» در داشبورد
+
+## پروژه
+
+`nobat724_front` (سایت عمومی، داشبورد).
+
+> **Cross-repo:** وابسته به پرامپت بکاند `clinicpro/.claude/prompt/appointment-detail-enrich.md` که `doctor.specialties` و `address` را به پاسخ نوبت اضافه میکند. آن **اول** اجرا شود.
+
+## زمینه
+
+در داشبورد → «نوبتهای من» → «مشاهده جزئیات»، کارت «جزئیات نوبت شما» (`DetailLg`/`DetailSm`) فیلدهایی میخواند که با شکل واقعی پاسخ نوبت نمیخوانند، پس تاریخ/ساعت/تخصص/آدرس/تلفن خالی یا غلط نمایش داده میشوند.
+
+پاسخ واقعی نوبت (پس از پرامپت بکاند): `{ uuid, doctor:{name, specialties:[{uuid,name}]}, address:{address, telephone, map:{latitude,longitude}, ...}, slot_start, slot_end, status, ... }`. تاریخها Unixاند.
+
+## مشکل / هدف
+
+نگاشت فیلدها در `DetailLg.js` و `DetailSm.js` به مقادیر واقعی:
+
+| نمایش | فعلی (غلط) | درست |
+|------|-----------|------|
+| تاریخ نوبت | `appointmentData?.start_time` | `appointmentData?.slot_start` |
+| ساعت نوبت | `appointmentData?.slot?.time` | `convertTimestampToTime(appointmentData?.slot_start)` |
+| تخصص | `appointmentData?.doctor?.specialty?.name` | `appointmentData?.doctor?.specialties?.[0]?.name` |
+| آدرس | `appointmentData?.address?.address` | همان (درست) |
+| تلفن | `appointmentData?.address?.phone` | `appointmentData?.address?.telephone` |
+| نقشه | `appointmentData?.address?.map` | همان (درست) |
+
+## فایلهای مرتبط
+
+| فایل | نقش |
+|------|-----|
+| `components/dashboard/userAccount/sidebars/turns/isTurnsDetails/DetailLg.js` | نمای دسکتاپ جزئیات |
+| `components/dashboard/userAccount/sidebars/turns/isTurnsDetails/DetailSm.js` | نمای موبایل جزئیات |
+
+## وضعیت فعلی (کد واقعی — هر دو فایل مشابه)
+
+```jsx
+{convertTimestampToJalali(appointmentData?.start_time)} // ❌ start_time
+ساعت {appointmentData?.slot?.time} // ❌ slot.time
+تخصص: {appointmentData?.doctor?.specialty?.name} // ❌ specialty.name
+{appointmentData?.address?.phone} // ❌ phone
+```
+`convertTimestampToTime` از قبل در `helper` هست و در `DetailLg` import شده.
+
+## وظایف
+
+### ۱. اصلاح `DetailLg.js`
+- تاریخ: `convertTimestampToJalali(appointmentData?.slot_start)`
+- ساعت: `convertTimestampToTime(appointmentData?.slot_start)` (بهجای `appointmentData?.slot?.time`)
+- تخصص: `appointmentData?.doctor?.specialties?.[0]?.name`
+- تلفن: `appointmentData?.address?.telephone`
+- آدرس و `map` (مسیریابی) بدون تغییر (درستاند).
+
+### ۲. اصلاح `DetailSm.js`
+همان نگاشتها را اعمال کن (این فایل `convertTimestampToTime` را import نکرده باشد، اضافه کن). ساعت از `slot_start`.
+
+## نکات مهم
+
+- اگر تخصص خالی بود (`specialties` خالی) یا آدرس `null` بود (پزشک بدون آدرس)، بخش مربوط نباید crash کند — با optional chaining (`?.`) و عدم نمایش خطی که داده ندارد، تحمل کن.
+- `slot_start` Unix ثانیه است؛ `convertTimestampToJalali`/`convertTimestampToTime` همان را میگیرند (مثل `List.js`).
+- `address.map.latitude/longitude` رشتهاند (از `DoctorAddress::toArray`) — برای لینک مسیریابی کافیاند.
+- App Router، RTL، فونت Vazir؛ ساختار/استایل کارت حفظ شود، فقط منبع داده اصلاح شود.
+- بعد از تغییر: `npm run build` بدون خطا؛ دستی — یک نوبت را باز کن، تاریخ/ساعت/پزشک/تخصص/آدرس/تلفن درست نمایش داده شوند.
diff --git a/components/dashboard/userAccount/sidebars/turns/isTurnsDetails/DetailLg.js b/components/dashboard/userAccount/sidebars/turns/isTurnsDetails/DetailLg.js
index 8ea2458..520e848 100644
--- a/components/dashboard/userAccount/sidebars/turns/isTurnsDetails/DetailLg.js
+++ b/components/dashboard/userAccount/sidebars/turns/isTurnsDetails/DetailLg.js
@@ -60,7 +60,7 @@ function DetailLg({ appointmentData, loading }) {
- تخصص: {appointmentData?.doctor?.specialty?.name}
+ تخصص: {appointmentData?.doctor?.specialties?.[0]?.name}
تاریخ نوبت:{" "} - {convertTimestampToJalali(appointmentData?.start_time)} + {convertTimestampToJalali(appointmentData?.slot_start)}
@@ -84,7 +84,7 @@ function DetailLg({ appointmentData, loading }) {زمان نوبت:{" "} - ساعت {appointmentData?.slot?.time} + ساعت {convertTimestampToTime(appointmentData?.slot_start)}
@@ -126,7 +126,7 @@ function DetailLg({ appointmentData, loading }) {تلفن:{" "} - {appointmentData?.address?.phone} + {appointmentData?.address?.telephone}
diff --git a/components/dashboard/userAccount/sidebars/turns/isTurnsDetails/DetailSm.js b/components/dashboard/userAccount/sidebars/turns/isTurnsDetails/DetailSm.js index 49b0efa..a346b62 100644 --- a/components/dashboard/userAccount/sidebars/turns/isTurnsDetails/DetailSm.js +++ b/components/dashboard/userAccount/sidebars/turns/isTurnsDetails/DetailSm.js @@ -3,7 +3,7 @@ import { Button } from "@mui/material"; import React, { useRef } from "react"; import ButtonData from "./ButtonData"; import TextLoading from "@/app/component/loading/Text"; -import { convertTimestampToJalali } from "@/helper"; +import { convertTimestampToJalali, convertTimestampToTime } from "@/helper"; import html2canvas from "html2canvas"; import jsPDF from "jspdf"; @@ -56,7 +56,7 @@ function DetailSm({ appointmentData, loading }) {- {appointmentData?.doctor?.specialty?.name} + {appointmentData?.doctor?.specialties?.[0]?.name}
- {convertTimestampToJalali(appointmentData?.start_time)} + {convertTimestampToJalali(appointmentData?.slot_start)}
- {appointmentData?.slot?.time} + {convertTimestampToTime(appointmentData?.slot_start)}
- تلفن: {appointmentData?.address?.phone} + تلفن: {appointmentData?.address?.telephone}