| Method | Endpoint | الوصف |
|---|
| GET | /health | فحص الحالة (بدون مفتاح) |
| GET | /v1/customers | قائمة العملاء + فلاتر: q, source, city, gender, mobile, created_from, created_to, updated_since, page, page_size |
| GET | /v1/customers/{id} | عميل واحد بكل البيانات |
| GET | /v1/customers/{id}/summary | ملخص العميل: قيمته (LTV)، عدد الزيارات، أول/آخر زيارة |
| GET | /v1/customers/{id}/invoices | فواتير العميل |
| GET | /v1/customers/{id}/appointments | حجوزات العميل |
| POST | /v1/customers | إنشاء عميل/lead جديد (كتابة). body: name*, mobile, gender, city, source, email, whatsapp, national_id, notes |
| PATCH | /v1/customers/{id} | تعديل بيانات عميل (كتابة) |
| GET | /v1/appointments | الحجوزات + فلاتر: from, to, doctor, customer_id, confirmed |
| GET | /v1/appointments/{id} | حجز واحد |
| POST | /v1/appointments | حجز موعد جديد (كتابة). body: start*, duration_minutes, customer_id, doctor, subject, phone |
| GET | /v1/invoices | الفواتير + فلاتر: from, to, customer_id, doctor |
| GET | /v1/invoices/{id} | فاتورة + بنودها |
| GET | /v1/payments | المدفوعات + فلاتر: from, to, customer_id, doctor, type |
| GET | /v1/services | الخدمات/الأصناف والأسعار |
| GET | /v1/doctors | الأطباء |
| GET | /v1/clinics | العيادات |
| GET | /v1/sources | مصادر العملاء (قنوات التسويق) + الأعداد |
| GET | /v1/lookups | قوائم مرجعية: طرق الدفع، حالات الحجز، المدن |
| GET | /v1/marketing/sources | أداء القنوات: عملاء جدد + إيرادهم لكل مصدر (from, to) |
| GET | /v1/revenue/timeseries | الإيراد مجمّع: group_by = day|doctor|clinic|type (from, to) |
| GET | /v1/reports/summary | ملخص KPIs للفترة (from, to) |