# بحث وتصفح العيادات والدكاترة

مسارات عامة (public) — لا تحتاج `Authorization`. كل الاستجابات بنفس الظرف الموحّد في
[`00-api-response-format.md`](00-api-response-format.md). Controller:
`App\Http\Controllers\Api\V1\Clinic\{SpecialtyController,ClinicProfileController,DoctorController}`.

## GET v1/lookups/specialties

قائمة التخصصات النشطة فقط (`is_active=true`)، بدون ترقيم صفحات (القائمة صغيرة).

```json
{
  "success": true, "code": "OK", "message": "تمت العملية بنجاح",
  "data": [
    { "id": 1, "name": "الباطنة", "slug": "internal_medicine", "description": "...", "icon_url": "https://.../assets_web/img/service/img1.webp", "doctors_count": 2 },
    { "id": 4, "name": "القلب", "slug": "cardiology", "description": "...", "icon_url": "https://.../assets_web/img/service/img4.webp", "doctors_count": 2 }
  ],
  "meta": {}, "errors": null
}
```

## GET v1/clinics

| Query | نوع | افتراضي |
|---|---|---|
| `branch_id` | int, اختياري | بدون فلترة |

قائمة مرقّمة (15/صفحة) للعيادات النشطة (`is_active=true`) مع بيانات الفرع.

```json
{
  "success": true, "code": "OK", "message": "تمت العملية بنجاح",
  "data": [
    {
      "id": 1, "name": "عيادة الباطنة والقلب",
      "branch": { "id": 3, "name": "Wellness Care Clinic" },
      "logo_url": null, "cover_image_url": null,
      "description": "...", "whatsapp": "0100 111 2222",
      "working_hours": { "sun": ["09:00","21:00"], "fri": null },
      "avg_rating": 5
    }
  ],
  "meta": { "pagination": { "current_page": 1, "per_page": 15, "total": 6, "last_page": 1 } },
  "errors": null
}
```

## GET v1/doctors

| Query | نوع | ملاحظات |
|---|---|---|
| `specialty_id` | int, اختياري | |
| `branch_id` | int, اختياري | يفلتر على عيادات نشطة تابعة لهذا الفرع |
| `q` | string, اختياري | بحث في اسم الدكتور |

فقط دكاترة `status=active` وعندهم على الأقل ربط نشط بعيادة واحدة. قائمة مرقّمة (12/صفحة).

```json
{
  "success": true, "code": "OK", "message": "تمت العملية بنجاح",
  "data": [
    {
      "id": 1, "name": "Dr. Ahmed Hassan", "photo_url": null,
      "specialty": { "id": 1, "name": "الباطنة" },
      "years_experience": 15, "average_rating": 5
    }
  ],
  "meta": { "pagination": { "current_page": 1, "per_page": 12, "total": 10, "last_page": 1 } },
  "errors": null
}
```

## GET v1/doctors/{doctor}

بروفايل الدكتور الكامل: العيادات النشطة (بالسعر لكل نوع خدمة والجدول الأسبوعي)، والتقييم
العام، وآخر 5 تقييمات. لو الدكتور `status != active` أو مالوش عيادات نشطة → `404 NOT_FOUND`.

**مهم:** الأسعار المعروضة `visit`/`online` فقط أبدًا — نوع `followup` (إعادة الكشف) له سعر
خاص في `clinic_service_prices` لكنه لا يُعرض للمريض أبدًا لأن حجزه لوحة تحكم فقط
(انظر [`01-gap-analysis.md`](01-gap-analysis.md)).

```json
{
  "success": true, "code": "OK", "message": "تمت العملية بنجاح",
  "data": {
    "id": 1, "name": "Dr. Ahmed Hassan", "photo_url": null,
    "bio": "...", "qualifications": "MD, board certified", "years_experience": 15,
    "specialty": { "id": 1, "name": "الباطنة" },
    "average_rating": 5,
    "clinics": [
      {
        "clinic_profile_id": 1, "name": "عيادة الباطنة والقلب",
        "branch": { "id": 3, "name": "Wellness Care Clinic" },
        "avg_rating": 5,
        "prices": [
          { "service_type": "online", "total_price": 200 },
          { "service_type": "visit", "total_price": 300 }
        ],
        "schedule": [
          { "day_of_week": 0, "label": "Morning", "start_time": "09:00:00", "end_time": "13:00:00" },
          { "day_of_week": 0, "label": "Evening", "start_time": "17:00:00", "end_time": "21:00:00" }
        ]
      }
    ],
    "reviews": [
      { "id": 1, "doctor_rating": 5, "doctor_comment": "...", "clinic_rating": 5, "clinic_comment": "...", "patient_name": "Sara", "created_at": "2026-09-04T15:22:26+03:00" }
    ]
  },
  "meta": {}, "errors": null
}
```

## GET v1/doctors/{doctor}/reviews

قائمة مرقّمة (10/صفحة) لكل تقييمات الدكتور اللي فيها `doctor_comment` — نفس شكل عنصر
`reviews` في بروفايل الدكتور أعلاه. `patient_name` هو الاسم الأول فقط (خصوصية المريض).
