Implement SMS panel user flow and patient records system; add wallet charging, automatic reminders, and patient session management with detailed database schema and user flows.
This commit is contained in:
@@ -0,0 +1,78 @@
|
||||
# تسک ۱۶: داشبورد هوشمند — چارت + فیلتر زمانی
|
||||
|
||||
## توضیح
|
||||
داشبوردهای موجود را با نمودار و فیلتر بازه زمانی تکمیل میکند.
|
||||
**هیچ endpoint جدیدی ایجاد نمیشود** — فقط پارامتر `from` و `to` (Unix timestamp) به endpoint های موجود اضافه میشود.
|
||||
همچنین چند فیلد جدید به response های موجود اضافه میشود.
|
||||
|
||||
## Endpoint های موجود که تغییر میکنند
|
||||
|
||||
| متد | مسیر | تغییر |
|
||||
|-----|------|-------|
|
||||
| GET | `/api/v1/admin/dashboard/charts` | اضافه: query params `from` و `to` |
|
||||
| GET | `/api/v1/dashboard/clinic` | اضافه: `from`، `to` + فیلدهای جدید response |
|
||||
| GET | `/api/v1/dashboard/doctor` | اضافه: `from`، `to` + فیلدهای جدید response |
|
||||
|
||||
## فیلدهای جدید در Response
|
||||
|
||||
### GET /api/v1/dashboard/clinic
|
||||
فیلدهای اضافهشده به data موجود:
|
||||
```json
|
||||
{
|
||||
"sms_wallet_balance": 150000,
|
||||
"unique_patients_count": 45,
|
||||
"revenue_period_rials": 12500000
|
||||
}
|
||||
```
|
||||
|
||||
### GET /api/v1/dashboard/doctor
|
||||
فیلدهای اضافهشده:
|
||||
```json
|
||||
{
|
||||
"unique_patients_count": 28,
|
||||
"revenue_period_rials": 7800000
|
||||
}
|
||||
```
|
||||
|
||||
### GET /api/v1/admin/dashboard/charts?from=UNIX&to=UNIX
|
||||
```json
|
||||
{
|
||||
"success": true,
|
||||
"data": {
|
||||
"appointments_by_day": [
|
||||
{ "date": 1718000000, "count": 12 },
|
||||
{ "date": 1718086400, "count": 8 }
|
||||
],
|
||||
"revenue_by_day": [
|
||||
{ "date": 1718000000, "amount_rials": 4500000 },
|
||||
{ "date": 1718086400, "amount_rials": 3200000 }
|
||||
],
|
||||
"subscription_sales_by_plan": [
|
||||
{ "plan": "basic", "count": 15, "total_rials": 3750000 },
|
||||
{ "plan": "professional", "count": 5, "total_rials": 2500000 }
|
||||
]
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## پیشنیازها
|
||||
- همه تسکهای ۱۰–۱۵ (نیاز به داده واقعی)
|
||||
- `yarn add recharts` برای نمودارها
|
||||
|
||||
## زمان تخمینی
|
||||
۸ تا ۱۰ ساعت
|
||||
|
||||
## فیلتر بازه زمانی
|
||||
|
||||
| preset | محاسبه |
|
||||
|--------|--------|
|
||||
| این هفته | from = شروع هفته جاری (شنبه) — to = now |
|
||||
| این ماه | from = اول ماه جاری (شمسی) — to = now |
|
||||
| ۳ ماه | from = now - 90 روز — to = now |
|
||||
| سفارشی | کاربر از PersianCalendar انتخاب میکند |
|
||||
|
||||
**تبدیل تاریخ شمسی به Unix timestamp** برای ارسال به API:
|
||||
```ts
|
||||
// از کتابخانه موجود در پروژه استفاده میشود
|
||||
// PersianCalendar component از assets/admin/components/ui/
|
||||
```
|
||||
Reference in New Issue
Block a user