Files
clinicpro/docs/phase2_taskes/task-16-smart-dashboard/task.md
T

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/