2.6 KiB
2.6 KiB
تسک ۱۶: داشبورد هوشمند — چارت + فیلتر زمانی
توضیح
داشبوردهای موجود را با نمودار و فیلتر بازه زمانی تکمیل میکند.
هیچ 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 موجود:
{
"sms_wallet_balance": 150000,
"unique_patients_count": 45,
"revenue_period_rials": 12500000
}
GET /api/v1/dashboard/doctor
فیلدهای اضافهشده:
{
"unique_patients_count": 28,
"revenue_period_rials": 7800000
}
GET /api/v1/admin/dashboard/charts?from=UNIX&to=UNIX
{
"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:
// از کتابخانه موجود در پروژه استفاده میشود
// PersianCalendar component از assets/admin/components/ui/