{
  "info": {
    "_postman_id": "b5a2b6f0-3d1f-4b1a-9a1a-bst-clinics-mobile-api",
    "name": "BST Clinics - Mobile API (v1)",
    "description": "مجموعة Postman كاملة لكل endpoints الخاصة بتطبيق الموبايل (المريض) في نظام BST Clinics.\n\n- كل الاستجابات بنفس الظرف الموحّد: {success, code, message, data, meta, errors} — راجع plan_Clinics/api/00-api-response-format.md.\n- اللغة تتحدد عن طريق Header اسمه Accept-Language (ar أو en)، الافتراضي ar. متغير المجموعة {{lang}} بيتحكم فيه.\n- التوثيق (Authentication) بتوكن Sanctum: Authorization: Bearer {{token}}. الطلبات المحمية معمول لها Auth من نوع Bearer جاهز، وبيتاخد التوكن تلقائيًا من متغير {{token}} بعد ما تعمل Login أو Register (فيه Test Script بياخده تلقائي).\n- خارج النطاق تمامًا في هذه النسخة: الدفع (Payment)، OTP، مكالمة الفيديو.\n- حجز نوع followup (إعادة الكشف) غير متاح من الموبايل أبدًا — لوحة تحكم الأدمن فقط.",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
  },
  "auth": {
    "type": "bearer",
    "bearer": [
      {
        "key": "token",
        "value": "{{token}}",
        "type": "string"
      }
    ]
  },
  "event": [
    {
      "listen": "prerequest",
      "script": {
        "type": "text/javascript",
        "exec": [
          ""
        ]
      }
    },
    {
      "listen": "test",
      "script": {
        "type": "text/javascript",
        "exec": [
          ""
        ]
      }
    }
  ],
  "variable": [
    {
      "key": "base_url",
      "value": "http://erp.local/api/v1",
      "type": "string",
      "description": "رابط الـ API الأساسي — غيّره لو السيرفر عندك على دومين/بورت مختلف"
    },
    {
      "key": "lang",
      "value": "ar",
      "type": "string",
      "description": "ar أو en — بيتبعت في Header اسمه Accept-Language"
    },
    {
      "key": "token",
      "value": "",
      "type": "string",
      "description": "بيتحدد تلقائيًا بعد Login/Register (Test Script)، أو حطه يدويًا"
    },
    {
      "key": "doctor_id",
      "value": "1",
      "type": "string"
    },
    {
      "key": "clinic_profile_id",
      "value": "1",
      "type": "string"
    },
    {
      "key": "branch_id",
      "value": "3",
      "type": "string"
    },
    {
      "key": "specialty_id",
      "value": "1",
      "type": "string"
    },
    {
      "key": "booking_id",
      "value": "1",
      "type": "string"
    },
    {
      "key": "record_id",
      "value": "1",
      "type": "string"
    },
    {
      "key": "notification_id",
      "value": "",
      "type": "string"
    },
    {
      "key": "category_id",
      "value": "",
      "type": "string"
    },
    {
      "key": "booking_date",
      "value": "2026-12-01",
      "type": "string",
      "description": "أي تاريخ مستقبلي بصيغة YYYY-MM-DD"
    },
    {
      "key": "booking_time",
      "value": "10:00",
      "type": "string",
      "description": "صيغة H:i"
    }
  ],
  "item": [
    {
      "name": "01 - Auth",
      "description": "تسجيل/دخول/الملف الشخصي. Controller: App\\Http\\Controllers\\Api\\V1\\Auth\\AuthController.",
      "item": [
        {
          "name": "Register",
          "request": {
            "auth": {
              "type": "noauth"
            },
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Accept-Language",
                "value": "{{lang}}"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/auth/register",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "auth",
                "register"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"Test Patient\",\n  \"phone\": \"01012345678\",\n  \"email\": \"test.patient@example.com\",\n  \"password\": \"Password123!\",\n  \"password_confirmation\": \"Password123!\",\n  \"date_of_birth\": \"1995-06-15\",\n  \"gender\": \"male\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "description": "إنشاء حساب مريض جديد.\n\n| الحقل | النوع | القواعد |\n|---|---|---|\n| name | string | مطلوب، أقصى 255 حرف |\n| phone | string | مطلوب، أقصى 50 حرف، **فريد** في جدول users |\n| email | string | اختياري، بريد صالح، أقصى 255 حرف، فريد لو اتبعت |\n| password | string | مطلوب، مؤكّد (لازم يتساوى مع password_confirmation)، حسب قواعد Password::defaults() الافتراضية في Laravel |\n| password_confirmation | string | مطلوب لو بعت password |\n| date_of_birth | date | اختياري، قبل اليوم |\n| gender | string | اختياري، male أو female |\n\nالنجاح (201 CREATED) بيرجع user + token + token_type. الـ Test Script بيحفظ التوكن تلقائيًا في {{token}}."
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "if (pm.response.code === 201) {",
                  "    var json = pm.response.json();",
                  "    if (json.success && json.data && json.data.token) {",
                  "        pm.collectionVariables.set('token', json.data.token);",
                  "        console.log('Token saved:', json.data.token);",
                  "    }",
                  "}"
                ]
              }
            }
          ],
          "response": [
            {
              "name": "Success",
              "originalRequest": {
                "auth": {
                  "type": "noauth"
                },
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{lang}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/auth/register",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "auth",
                    "register"
                  ]
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"name\": \"Test Patient\",\n  \"phone\": \"01012345678\",\n  \"email\": \"test.patient@example.com\",\n  \"password\": \"Password123!\",\n  \"password_confirmation\": \"Password123!\",\n  \"date_of_birth\": \"1995-06-15\",\n  \"gender\": \"male\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "description": "إنشاء حساب مريض جديد.\n\n| الحقل | النوع | القواعد |\n|---|---|---|\n| name | string | مطلوب، أقصى 255 حرف |\n| phone | string | مطلوب، أقصى 50 حرف، **فريد** في جدول users |\n| email | string | اختياري، بريد صالح، أقصى 255 حرف، فريد لو اتبعت |\n| password | string | مطلوب، مؤكّد (لازم يتساوى مع password_confirmation)، حسب قواعد Password::defaults() الافتراضية في Laravel |\n| password_confirmation | string | مطلوب لو بعت password |\n| date_of_birth | date | اختياري، قبل اليوم |\n| gender | string | اختياري، male أو female |\n\nالنجاح (201 CREATED) بيرجع user + token + token_type. الـ Test Script بيحفظ التوكن تلقائيًا في {{token}}."
              },
              "status": "Created",
              "code": 201,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "cookie": [],
              "body": "{\n    \"success\": true,\n    \"code\": \"CREATED\",\n    \"message\": \"تم الإنشاء بنجاح\",\n    \"data\": {\n        \"token\": \"1|abcdEXAMPLEtokenXXXXXXXXXXXXXXXXXXXXXXXXXXXX\",\n        \"refresh_token\": \"rt_9f8e7d6c5b4a3210example\",\n        \"token_type\": \"Bearer\",\n        \"user\": {\n            \"id\": 12,\n            \"name\": \"Test Patient\",\n            \"phone\": \"01011122233\",\n            \"email\": \"test.patient@example.com\",\n            \"address\": \"Cairo, Egypt\",\n            \"avatar_url\": null,\n            \"birth_date\": null,\n            \"gender\": null,\n            \"job\": null,\n            \"has_medical_profile\": false,\n            \"created_at\": \"2026-08-20T10:15:00+03:00\"\n        }\n    },\n    \"meta\": {},\n    \"errors\": null\n}"
            },
            {
              "name": "Validation Error - email already used",
              "originalRequest": {
                "auth": {
                  "type": "noauth"
                },
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{lang}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/auth/register",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "auth",
                    "register"
                  ]
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"name\": \"Test Patient\",\n  \"phone\": \"01012345678\",\n  \"email\": \"test.patient@example.com\",\n  \"password\": \"Password123!\",\n  \"password_confirmation\": \"Password123!\",\n  \"date_of_birth\": \"1995-06-15\",\n  \"gender\": \"male\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "description": "إنشاء حساب مريض جديد.\n\n| الحقل | النوع | القواعد |\n|---|---|---|\n| name | string | مطلوب، أقصى 255 حرف |\n| phone | string | مطلوب، أقصى 50 حرف، **فريد** في جدول users |\n| email | string | اختياري، بريد صالح، أقصى 255 حرف، فريد لو اتبعت |\n| password | string | مطلوب، مؤكّد (لازم يتساوى مع password_confirmation)، حسب قواعد Password::defaults() الافتراضية في Laravel |\n| password_confirmation | string | مطلوب لو بعت password |\n| date_of_birth | date | اختياري، قبل اليوم |\n| gender | string | اختياري، male أو female |\n\nالنجاح (201 CREATED) بيرجع user + token + token_type. الـ Test Script بيحفظ التوكن تلقائيًا في {{token}}."
              },
              "status": "Unprocessable Entity",
              "code": 422,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "cookie": [],
              "body": "{\n    \"success\": false,\n    \"code\": \"VALIDATION_ERROR\",\n    \"message\": \"البيانات المدخلة غير صحيحة\",\n    \"data\": null,\n    \"meta\": {},\n    \"errors\": {\n        \"email\": [\n            \"البريد الإلكتروني مستخدم من قبل\"\n        ]\n    }\n}"
            }
          ]
        },
        {
          "name": "Login",
          "request": {
            "auth": {
              "type": "noauth"
            },
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Accept-Language",
                "value": "{{lang}}"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/auth/login",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "auth",
                "login"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"login\": \"01012345678\",\n  \"password\": \"Password123!\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "description": "تسجيل الدخول بالهاتف أو الإيميل.\n\n| الحقل | النوع | القواعد |\n|---|---|---|\n| login | string | مطلوب — رقم هاتف أو بريد إلكتروني (النظام بيحدد النوع تلقائيًا) |\n| password | string | مطلوب |\n\nكل 5 محاولات فاشلة خلال 60 ثانية لنفس login+IP → 429 TOO_MANY_REQUESTS مع meta.retry_after.\nبيانات خاطئة → 401 INVALID_CREDENTIALS. النجاح بيرجع user + token + token_type ويتحفظ تلقائيًا في {{token}}."
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "if (pm.response.code === 200) {",
                  "    var json = pm.response.json();",
                  "    if (json.success && json.data && json.data.token) {",
                  "        pm.collectionVariables.set('token', json.data.token);",
                  "        console.log('Token saved:', json.data.token);",
                  "    }",
                  "}"
                ]
              }
            }
          ],
          "response": [
            {
              "name": "Success",
              "originalRequest": {
                "auth": {
                  "type": "noauth"
                },
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{lang}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/auth/login",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "auth",
                    "login"
                  ]
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"login\": \"01012345678\",\n  \"password\": \"Password123!\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "description": "تسجيل الدخول بالهاتف أو الإيميل.\n\n| الحقل | النوع | القواعد |\n|---|---|---|\n| login | string | مطلوب — رقم هاتف أو بريد إلكتروني (النظام بيحدد النوع تلقائيًا) |\n| password | string | مطلوب |\n\nكل 5 محاولات فاشلة خلال 60 ثانية لنفس login+IP → 429 TOO_MANY_REQUESTS مع meta.retry_after.\nبيانات خاطئة → 401 INVALID_CREDENTIALS. النجاح بيرجع user + token + token_type ويتحفظ تلقائيًا في {{token}}."
              },
              "status": "OK",
              "code": 200,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "cookie": [],
              "body": "{\n    \"success\": true,\n    \"code\": \"OK\",\n    \"message\": \"تمت العملية بنجاح\",\n    \"data\": {\n        \"token\": \"1|abcdEXAMPLEtokenXXXXXXXXXXXXXXXXXXXXXXXXXXXX\",\n        \"refresh_token\": \"rt_9f8e7d6c5b4a3210example\",\n        \"token_type\": \"Bearer\",\n        \"user\": {\n            \"id\": 7,\n            \"name\": \"Sara Ibrahim\",\n            \"phone\": \"01011122233\",\n            \"email\": \"sara@example.test\",\n            \"address\": \"Cairo, Egypt\",\n            \"avatar_url\": null,\n            \"birth_date\": \"1990-05-14\",\n            \"gender\": \"female\",\n            \"job\": \"Teacher\",\n            \"has_medical_profile\": true,\n            \"created_at\": \"2026-08-20T10:15:00+03:00\"\n        }\n    },\n    \"meta\": {},\n    \"errors\": null\n}"
            },
            {
              "name": "Invalid Credentials",
              "originalRequest": {
                "auth": {
                  "type": "noauth"
                },
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{lang}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/auth/login",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "auth",
                    "login"
                  ]
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"login\": \"01012345678\",\n  \"password\": \"Password123!\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "description": "تسجيل الدخول بالهاتف أو الإيميل.\n\n| الحقل | النوع | القواعد |\n|---|---|---|\n| login | string | مطلوب — رقم هاتف أو بريد إلكتروني (النظام بيحدد النوع تلقائيًا) |\n| password | string | مطلوب |\n\nكل 5 محاولات فاشلة خلال 60 ثانية لنفس login+IP → 429 TOO_MANY_REQUESTS مع meta.retry_after.\nبيانات خاطئة → 401 INVALID_CREDENTIALS. النجاح بيرجع user + token + token_type ويتحفظ تلقائيًا في {{token}}."
              },
              "status": "Unauthorized",
              "code": 401,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "cookie": [],
              "body": "{\n    \"success\": false,\n    \"code\": \"INVALID_CREDENTIALS\",\n    \"message\": \"بيانات الدخول غير صحيحة\",\n    \"data\": null,\n    \"meta\": {},\n    \"errors\": null\n}"
            },
            {
              "name": "Too Many Requests",
              "originalRequest": {
                "auth": {
                  "type": "noauth"
                },
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{lang}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/auth/login",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "auth",
                    "login"
                  ]
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"login\": \"01012345678\",\n  \"password\": \"Password123!\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "description": "تسجيل الدخول بالهاتف أو الإيميل.\n\n| الحقل | النوع | القواعد |\n|---|---|---|\n| login | string | مطلوب — رقم هاتف أو بريد إلكتروني (النظام بيحدد النوع تلقائيًا) |\n| password | string | مطلوب |\n\nكل 5 محاولات فاشلة خلال 60 ثانية لنفس login+IP → 429 TOO_MANY_REQUESTS مع meta.retry_after.\nبيانات خاطئة → 401 INVALID_CREDENTIALS. النجاح بيرجع user + token + token_type ويتحفظ تلقائيًا في {{token}}."
              },
              "status": "Too Many Requests",
              "code": 429,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "cookie": [],
              "body": "{\n    \"success\": false,\n    \"code\": \"TOO_MANY_REQUESTS\",\n    \"message\": \"عدد كبير من المحاولات، يرجى المحاولة لاحقاً\",\n    \"data\": null,\n    \"meta\": {\n        \"retry_after\": 45\n    },\n    \"errors\": null\n}"
            }
          ]
        },
        {
          "name": "Forgot Password",
          "request": {
            "auth": {
              "type": "noauth"
            },
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Accept-Language",
                "value": "{{lang}}"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/auth/forgot-password",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "auth",
                "forgot-password"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"email\": \"test.patient@example.com\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "description": "إرسال لينك إعادة تعيين كلمة المرور بالإيميل فقط (مفيش OTP/هاتف في هذه النسخة).\n\n| الحقل | النوع | القواعد |\n|---|---|---|\n| email | string | مطلوب، بريد صالح |\n\nلو الإيميل مش موجود → 404 NOT_FOUND. لو اتبعت قبل كده بسرعة → 429 TOO_MANY_REQUESTS."
          },
          "response": [
            {
              "name": "Success",
              "originalRequest": {
                "auth": {
                  "type": "noauth"
                },
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{lang}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/auth/forgot-password",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "auth",
                    "forgot-password"
                  ]
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"email\": \"test.patient@example.com\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "description": "إرسال لينك إعادة تعيين كلمة المرور بالإيميل فقط (مفيش OTP/هاتف في هذه النسخة).\n\n| الحقل | النوع | القواعد |\n|---|---|---|\n| email | string | مطلوب، بريد صالح |\n\nلو الإيميل مش موجود → 404 NOT_FOUND. لو اتبعت قبل كده بسرعة → 429 TOO_MANY_REQUESTS."
              },
              "status": "OK",
              "code": 200,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "cookie": [],
              "body": "{\n    \"success\": true,\n    \"code\": \"OK\",\n    \"message\": \"تم إرسال رابط إعادة تعيين كلمة المرور إلى بريدك الإلكتروني\",\n    \"data\": null,\n    \"meta\": {},\n    \"errors\": null\n}"
            },
            {
              "name": "Too Many Requests",
              "originalRequest": {
                "auth": {
                  "type": "noauth"
                },
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{lang}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/auth/forgot-password",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "auth",
                    "forgot-password"
                  ]
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"email\": \"test.patient@example.com\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "description": "إرسال لينك إعادة تعيين كلمة المرور بالإيميل فقط (مفيش OTP/هاتف في هذه النسخة).\n\n| الحقل | النوع | القواعد |\n|---|---|---|\n| email | string | مطلوب، بريد صالح |\n\nلو الإيميل مش موجود → 404 NOT_FOUND. لو اتبعت قبل كده بسرعة → 429 TOO_MANY_REQUESTS."
              },
              "status": "Too Many Requests",
              "code": 429,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "cookie": [],
              "body": "{\n    \"success\": false,\n    \"code\": \"TOO_MANY_REQUESTS\",\n    \"message\": \"عدد كبير من المحاولات، يرجى المحاولة لاحقاً\",\n    \"data\": null,\n    \"meta\": {},\n    \"errors\": null\n}"
            }
          ]
        },
        {
          "name": "Reset Password",
          "request": {
            "auth": {
              "type": "noauth"
            },
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Accept-Language",
                "value": "{{lang}}"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/auth/reset-password",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "auth",
                "reset-password"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"email\": \"test.patient@example.com\",\n  \"token\": \"PASTE_TOKEN_FROM_EMAIL_HERE\",\n  \"password\": \"NewPassword123!\",\n  \"password_confirmation\": \"NewPassword123!\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "description": "إتمام إعادة تعيين كلمة المرور بالتوكن اللي جه في الإيميل.\n\n| الحقل | النوع | القواعد |\n|---|---|---|\n| email | string | مطلوب، بريد صالح |\n| token | string | مطلوب — توكن إعادة التعيين من الإيميل |\n| password | string | مطلوب، مؤكّد |\n| password_confirmation | string | مطلوب |\n\nتوكن غلط/منتهي → 422 VALIDATION_ERROR (errors.token)."
          },
          "response": [
            {
              "name": "Success",
              "originalRequest": {
                "auth": {
                  "type": "noauth"
                },
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{lang}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/auth/reset-password",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "auth",
                    "reset-password"
                  ]
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"email\": \"test.patient@example.com\",\n  \"token\": \"PASTE_TOKEN_FROM_EMAIL_HERE\",\n  \"password\": \"NewPassword123!\",\n  \"password_confirmation\": \"NewPassword123!\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "description": "إتمام إعادة تعيين كلمة المرور بالتوكن اللي جه في الإيميل.\n\n| الحقل | النوع | القواعد |\n|---|---|---|\n| email | string | مطلوب، بريد صالح |\n| token | string | مطلوب — توكن إعادة التعيين من الإيميل |\n| password | string | مطلوب، مؤكّد |\n| password_confirmation | string | مطلوب |\n\nتوكن غلط/منتهي → 422 VALIDATION_ERROR (errors.token)."
              },
              "status": "OK",
              "code": 200,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "cookie": [],
              "body": "{\n    \"success\": true,\n    \"code\": \"OK\",\n    \"message\": \"تم إعادة تعيين كلمة المرور بنجاح\",\n    \"data\": null,\n    \"meta\": {},\n    \"errors\": null\n}"
            },
            {
              "name": "Invalid or Expired Token",
              "originalRequest": {
                "auth": {
                  "type": "noauth"
                },
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{lang}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/auth/reset-password",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "auth",
                    "reset-password"
                  ]
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"email\": \"test.patient@example.com\",\n  \"token\": \"PASTE_TOKEN_FROM_EMAIL_HERE\",\n  \"password\": \"NewPassword123!\",\n  \"password_confirmation\": \"NewPassword123!\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "description": "إتمام إعادة تعيين كلمة المرور بالتوكن اللي جه في الإيميل.\n\n| الحقل | النوع | القواعد |\n|---|---|---|\n| email | string | مطلوب، بريد صالح |\n| token | string | مطلوب — توكن إعادة التعيين من الإيميل |\n| password | string | مطلوب، مؤكّد |\n| password_confirmation | string | مطلوب |\n\nتوكن غلط/منتهي → 422 VALIDATION_ERROR (errors.token)."
              },
              "status": "Unprocessable Entity",
              "code": 422,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "cookie": [],
              "body": "{\n    \"success\": false,\n    \"code\": \"VALIDATION_ERROR\",\n    \"message\": \"البيانات المدخلة غير صحيحة\",\n    \"data\": null,\n    \"meta\": {},\n    \"errors\": {\n        \"token\": [\n            \"رابط إعادة التعيين غير صالح أو منتهي الصلاحية\"\n        ]\n    }\n}"
            }
          ]
        },
        {
          "name": "Me",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Accept-Language",
                "value": "{{lang}}"
              }
            ],
            "url": {
              "raw": "{{base_url}}/auth/me",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "auth",
                "me"
              ]
            },
            "description": "بيانات المستخدم المسجّل دخوله + ملفه الطبي المختصر (has_medical_profile). يحتاج توكن صالح، وإلا 401 UNAUTHENTICATED."
          },
          "response": [
            {
              "name": "Success",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{lang}}"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/auth/me",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "auth",
                    "me"
                  ]
                },
                "description": "بيانات المستخدم المسجّل دخوله + ملفه الطبي المختصر (has_medical_profile). يحتاج توكن صالح، وإلا 401 UNAUTHENTICATED."
              },
              "status": "OK",
              "code": 200,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "cookie": [],
              "body": "{\n    \"success\": true,\n    \"code\": \"OK\",\n    \"message\": \"تمت العملية بنجاح\",\n    \"data\": {\n        \"id\": 7,\n        \"name\": \"Sara Ibrahim\",\n        \"phone\": \"01011122233\",\n        \"email\": \"sara@example.test\",\n        \"address\": \"Cairo, Egypt\",\n        \"avatar_url\": null,\n        \"birth_date\": \"1990-05-14\",\n        \"gender\": \"female\",\n        \"job\": \"Teacher\",\n        \"has_medical_profile\": true,\n        \"created_at\": \"2026-08-20T10:15:00+03:00\"\n    },\n    \"meta\": {},\n    \"errors\": null\n}"
            },
            {
              "name": "Unauthenticated",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{lang}}"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/auth/me",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "auth",
                    "me"
                  ]
                },
                "description": "بيانات المستخدم المسجّل دخوله + ملفه الطبي المختصر (has_medical_profile). يحتاج توكن صالح، وإلا 401 UNAUTHENTICATED."
              },
              "status": "Unauthorized",
              "code": 401,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "cookie": [],
              "body": "{\n    \"success\": false,\n    \"code\": \"UNAUTHENTICATED\",\n    \"message\": \"يجب تسجيل الدخول أولاً\",\n    \"data\": null,\n    \"meta\": {},\n    \"errors\": null\n}"
            }
          ]
        },
        {
          "name": "Update Profile",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Accept-Language",
                "value": "{{lang}}"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/auth/profile",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "auth",
                "profile"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"Test Patient Updated\",\n  \"phone\": \"01012345678\",\n  \"email\": \"test.patient@example.com\",\n  \"address\": \"Cairo, Egypt\",\n  \"date_of_birth\": \"1995-06-15\",\n  \"gender\": \"male\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "description": "تحديث بيانات الحساب الأساسية (مش الملف الطبي — ده في patient-profile/medical).\n\n| الحقل | النوع | القواعد |\n|---|---|---|\n| name | string | مطلوب |\n| phone | string | مطلوب، فريد (يستثني صاحب الحساب نفسه) |\n| email | string | اختياري، بريد صالح، فريد لو اتبعت |\n| address | string | اختياري، أقصى 1000 حرف |\n| date_of_birth | date | اختياري، قبل اليوم |\n| gender | string | اختياري، male أو female |"
          },
          "response": [
            {
              "name": "Success",
              "originalRequest": {
                "method": "PUT",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{lang}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/auth/profile",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "auth",
                    "profile"
                  ]
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"name\": \"Test Patient Updated\",\n  \"phone\": \"01012345678\",\n  \"email\": \"test.patient@example.com\",\n  \"address\": \"Cairo, Egypt\",\n  \"date_of_birth\": \"1995-06-15\",\n  \"gender\": \"male\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "description": "تحديث بيانات الحساب الأساسية (مش الملف الطبي — ده في patient-profile/medical).\n\n| الحقل | النوع | القواعد |\n|---|---|---|\n| name | string | مطلوب |\n| phone | string | مطلوب، فريد (يستثني صاحب الحساب نفسه) |\n| email | string | اختياري، بريد صالح، فريد لو اتبعت |\n| address | string | اختياري، أقصى 1000 حرف |\n| date_of_birth | date | اختياري، قبل اليوم |\n| gender | string | اختياري، male أو female |"
              },
              "status": "OK",
              "code": 200,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "cookie": [],
              "body": "{\n    \"success\": true,\n    \"code\": \"OK\",\n    \"message\": \"تمت العملية بنجاح\",\n    \"data\": {\n        \"id\": 7,\n        \"name\": \"Sara Ibrahim Ahmed\",\n        \"phone\": \"01011122233\",\n        \"email\": \"sara@example.test\",\n        \"address\": \"Cairo, Egypt\",\n        \"avatar_url\": null,\n        \"birth_date\": \"1990-05-14\",\n        \"gender\": \"female\",\n        \"job\": \"Teacher\",\n        \"has_medical_profile\": true,\n        \"created_at\": \"2026-08-20T10:15:00+03:00\"\n    },\n    \"meta\": {},\n    \"errors\": null\n}"
            },
            {
              "name": "Validation Error - phone taken",
              "originalRequest": {
                "method": "PUT",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{lang}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/auth/profile",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "auth",
                    "profile"
                  ]
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"name\": \"Test Patient Updated\",\n  \"phone\": \"01012345678\",\n  \"email\": \"test.patient@example.com\",\n  \"address\": \"Cairo, Egypt\",\n  \"date_of_birth\": \"1995-06-15\",\n  \"gender\": \"male\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "description": "تحديث بيانات الحساب الأساسية (مش الملف الطبي — ده في patient-profile/medical).\n\n| الحقل | النوع | القواعد |\n|---|---|---|\n| name | string | مطلوب |\n| phone | string | مطلوب، فريد (يستثني صاحب الحساب نفسه) |\n| email | string | اختياري، بريد صالح، فريد لو اتبعت |\n| address | string | اختياري، أقصى 1000 حرف |\n| date_of_birth | date | اختياري، قبل اليوم |\n| gender | string | اختياري، male أو female |"
              },
              "status": "Unprocessable Entity",
              "code": 422,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "cookie": [],
              "body": "{\n    \"success\": false,\n    \"code\": \"VALIDATION_ERROR\",\n    \"message\": \"البيانات المدخلة غير صحيحة\",\n    \"data\": null,\n    \"meta\": {},\n    \"errors\": {\n        \"phone\": [\n            \"رقم الهاتف مستخدم من قبل\"\n        ]\n    }\n}"
            }
          ]
        },
        {
          "name": "Upload Avatar",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Accept-Language",
                "value": "{{lang}}"
              }
            ],
            "url": {
              "raw": "{{base_url}}/auth/avatar",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "auth",
                "avatar"
              ]
            },
            "body": {
              "mode": "formdata",
              "formdata": [
                {
                  "key": "avatar",
                  "type": "file",
                  "src": [],
                  "description": "مطلوب — صورة فقط (image)، أقصى 2MB"
                }
              ]
            },
            "description": "رفع صورة البروفايل.\n\n| الحقل | النوع | القواعد |\n|---|---|---|\n| avatar | file | مطلوب، صورة (jpg/png/webp/...)، أقصى 2048KB |"
          },
          "response": [
            {
              "name": "Success",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{lang}}"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/auth/avatar",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "auth",
                    "avatar"
                  ]
                },
                "body": {
                  "mode": "formdata",
                  "formdata": [
                    {
                      "key": "avatar",
                      "type": "file",
                      "src": [],
                      "description": "مطلوب — صورة فقط (image)، أقصى 2MB"
                    }
                  ]
                },
                "description": "رفع صورة البروفايل.\n\n| الحقل | النوع | القواعد |\n|---|---|---|\n| avatar | file | مطلوب، صورة (jpg/png/webp/...)، أقصى 2048KB |"
              },
              "status": "OK",
              "code": 200,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "cookie": [],
              "body": "{\n    \"success\": true,\n    \"code\": \"OK\",\n    \"message\": \"تم تحديث الصورة الشخصية بنجاح\",\n    \"data\": {\n        \"id\": 7,\n        \"name\": \"Sara Ibrahim\",\n        \"phone\": \"01011122233\",\n        \"email\": \"sara@example.test\",\n        \"address\": \"Cairo, Egypt\",\n        \"avatar_url\": \"http://erp.local/uploads/avatars/ab12cd34.jpg\",\n        \"birth_date\": \"1990-05-14\",\n        \"gender\": \"female\",\n        \"job\": \"Teacher\",\n        \"has_medical_profile\": true,\n        \"created_at\": \"2026-08-20T10:15:00+03:00\"\n    },\n    \"meta\": {},\n    \"errors\": null\n}"
            },
            {
              "name": "Validation Error",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{lang}}"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/auth/avatar",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "auth",
                    "avatar"
                  ]
                },
                "body": {
                  "mode": "formdata",
                  "formdata": [
                    {
                      "key": "avatar",
                      "type": "file",
                      "src": [],
                      "description": "مطلوب — صورة فقط (image)، أقصى 2MB"
                    }
                  ]
                },
                "description": "رفع صورة البروفايل.\n\n| الحقل | النوع | القواعد |\n|---|---|---|\n| avatar | file | مطلوب، صورة (jpg/png/webp/...)، أقصى 2048KB |"
              },
              "status": "Unprocessable Entity",
              "code": 422,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "cookie": [],
              "body": "{\n    \"success\": false,\n    \"code\": \"VALIDATION_ERROR\",\n    \"message\": \"البيانات المدخلة غير صحيحة\",\n    \"data\": null,\n    \"meta\": {},\n    \"errors\": {\n        \"avatar\": [\n            \"يجب أن يكون avatar صورة\"\n        ]\n    }\n}"
            }
          ]
        },
        {
          "name": "Update Password",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Accept-Language",
                "value": "{{lang}}"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/auth/password",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "auth",
                "password"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"current_password\": \"Password123!\",\n  \"password\": \"NewPassword456!\",\n  \"password_confirmation\": \"NewPassword456!\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "description": "تغيير كلمة المرور — بيلغي كل التوكنات التانية غير التوكن الحالي.\n\n| الحقل | النوع | القواعد |\n|---|---|---|\n| current_password | string | مطلوب — لازم تتطابق مع الحالية وإلا 422 (errors.current_password) |\n| password | string | مطلوب، مؤكّد |\n| password_confirmation | string | مطلوب |"
          },
          "response": [
            {
              "name": "Success",
              "originalRequest": {
                "method": "PUT",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{lang}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/auth/password",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "auth",
                    "password"
                  ]
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"current_password\": \"Password123!\",\n  \"password\": \"NewPassword456!\",\n  \"password_confirmation\": \"NewPassword456!\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "description": "تغيير كلمة المرور — بيلغي كل التوكنات التانية غير التوكن الحالي.\n\n| الحقل | النوع | القواعد |\n|---|---|---|\n| current_password | string | مطلوب — لازم تتطابق مع الحالية وإلا 422 (errors.current_password) |\n| password | string | مطلوب، مؤكّد |\n| password_confirmation | string | مطلوب |"
              },
              "status": "OK",
              "code": 200,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "cookie": [],
              "body": "{\n    \"success\": true,\n    \"code\": \"OK\",\n    \"message\": \"تم تغيير كلمة المرور بنجاح\",\n    \"data\": null,\n    \"meta\": {},\n    \"errors\": null\n}"
            },
            {
              "name": "Current Password Incorrect",
              "originalRequest": {
                "method": "PUT",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{lang}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/auth/password",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "auth",
                    "password"
                  ]
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"current_password\": \"Password123!\",\n  \"password\": \"NewPassword456!\",\n  \"password_confirmation\": \"NewPassword456!\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "description": "تغيير كلمة المرور — بيلغي كل التوكنات التانية غير التوكن الحالي.\n\n| الحقل | النوع | القواعد |\n|---|---|---|\n| current_password | string | مطلوب — لازم تتطابق مع الحالية وإلا 422 (errors.current_password) |\n| password | string | مطلوب، مؤكّد |\n| password_confirmation | string | مطلوب |"
              },
              "status": "Unprocessable Entity",
              "code": 422,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "cookie": [],
              "body": "{\n    \"success\": false,\n    \"code\": \"VALIDATION_ERROR\",\n    \"message\": \"البيانات المدخلة غير صحيحة\",\n    \"data\": null,\n    \"meta\": {},\n    \"errors\": {\n        \"current_password\": [\n            \"كلمة المرور الحالية غير صحيحة\"\n        ]\n    }\n}"
            }
          ]
        },
        {
          "name": "Logout",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Accept-Language",
                "value": "{{lang}}"
              }
            ],
            "url": {
              "raw": "{{base_url}}/auth/logout",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "auth",
                "logout"
              ]
            },
            "description": "يلغي التوكن الحالي بس (الجهاز الحالي).\n\nأرسل deviceToken (اختياري) ليتوقف إرسال الإشعارات لهذا الجهاز.",
            "body": {
              "mode": "raw",
              "raw": "{\n    \"deviceToken\": \"<FCM registration token (optional)>\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "name": "Success",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{lang}}"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/auth/logout",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "auth",
                    "logout"
                  ]
                },
                "description": "يلغي التوكن الحالي بس (الجهاز الحالي)."
              },
              "status": "OK",
              "code": 200,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "cookie": [],
              "body": "{\n    \"success\": true,\n    \"code\": \"OK\",\n    \"message\": \"تم تسجيل الخروج بنجاح\",\n    \"data\": null,\n    \"meta\": {},\n    \"errors\": null\n}"
            },
            {
              "name": "Unauthenticated",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{lang}}"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/auth/logout",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "auth",
                    "logout"
                  ]
                },
                "description": "يلغي التوكن الحالي بس (الجهاز الحالي)."
              },
              "status": "Unauthorized",
              "code": 401,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "cookie": [],
              "body": "{\n    \"success\": false,\n    \"code\": \"UNAUTHENTICATED\",\n    \"message\": \"يجب تسجيل الدخول أولاً\",\n    \"data\": null,\n    \"meta\": {},\n    \"errors\": null\n}"
            }
          ]
        },
        {
          "name": "Logout All",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Accept-Language",
                "value": "{{lang}}"
              }
            ],
            "url": {
              "raw": "{{base_url}}/auth/logout-all",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "auth",
                "logout-all"
              ]
            },
            "description": "يلغي كل توكنات المستخدم على كل الأجهزة."
          },
          "response": [
            {
              "name": "Success",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{lang}}"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/auth/logout-all",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "auth",
                    "logout-all"
                  ]
                },
                "description": "يلغي كل توكنات المستخدم على كل الأجهزة."
              },
              "status": "OK",
              "code": 200,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "cookie": [],
              "body": "{\n    \"success\": true,\n    \"code\": \"OK\",\n    \"message\": \"تم تسجيل الخروج بنجاح\",\n    \"data\": null,\n    \"meta\": {},\n    \"errors\": null\n}"
            },
            {
              "name": "Unauthenticated",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{lang}}"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/auth/logout-all",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "auth",
                    "logout-all"
                  ]
                },
                "description": "يلغي كل توكنات المستخدم على كل الأجهزة."
              },
              "status": "Unauthorized",
              "code": 401,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "cookie": [],
              "body": "{\n    \"success\": false,\n    \"code\": \"UNAUTHENTICATED\",\n    \"message\": \"يجب تسجيل الدخول أولاً\",\n    \"data\": null,\n    \"meta\": {},\n    \"errors\": null\n}"
            }
          ]
        },
        {
          "name": "Delete Account",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Accept-Language",
                "value": "{{lang}}"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/auth/account",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "auth",
                "account"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"password\": \"Password123!\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "description": "حذف الحساب نهائيًا.\n\n| الحقل | النوع | القواعد |\n|---|---|---|\n| password | string | مطلوب — لازم تتطابق مع كلمة المرور الحالية |\n\nلو عند المريض حجوزات سابقة → 409 CONFLICT (الحذف ممنوع للحفاظ على السجل)."
          },
          "response": [
            {
              "name": "Success",
              "originalRequest": {
                "method": "DELETE",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{lang}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/auth/account",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "auth",
                    "account"
                  ]
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"password\": \"Password123!\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "description": "حذف الحساب نهائيًا.\n\n| الحقل | النوع | القواعد |\n|---|---|---|\n| password | string | مطلوب — لازم تتطابق مع كلمة المرور الحالية |\n\nلو عند المريض حجوزات سابقة → 409 CONFLICT (الحذف ممنوع للحفاظ على السجل)."
              },
              "status": "OK",
              "code": 200,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "cookie": [],
              "body": "{\n    \"success\": true,\n    \"code\": \"OK\",\n    \"message\": \"تم حذف حسابك بنجاح\",\n    \"data\": null,\n    \"meta\": {},\n    \"errors\": null\n}"
            },
            {
              "name": "Blocked - has bookings",
              "originalRequest": {
                "method": "DELETE",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{lang}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/auth/account",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "auth",
                    "account"
                  ]
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"password\": \"Password123!\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "description": "حذف الحساب نهائيًا.\n\n| الحقل | النوع | القواعد |\n|---|---|---|\n| password | string | مطلوب — لازم تتطابق مع كلمة المرور الحالية |\n\nلو عند المريض حجوزات سابقة → 409 CONFLICT (الحذف ممنوع للحفاظ على السجل)."
              },
              "status": "Conflict",
              "code": 409,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "cookie": [],
              "body": "{\n    \"success\": false,\n    \"code\": \"CONFLICT\",\n    \"message\": \"لا يمكن حذف حسابك لوجود حجوزات سابقة مرتبطة به\",\n    \"data\": null,\n    \"meta\": {},\n    \"errors\": null\n}"
            },
            {
              "name": "Wrong Password",
              "originalRequest": {
                "method": "DELETE",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{lang}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/auth/account",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "auth",
                    "account"
                  ]
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"password\": \"Password123!\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "description": "حذف الحساب نهائيًا.\n\n| الحقل | النوع | القواعد |\n|---|---|---|\n| password | string | مطلوب — لازم تتطابق مع كلمة المرور الحالية |\n\nلو عند المريض حجوزات سابقة → 409 CONFLICT (الحذف ممنوع للحفاظ على السجل)."
              },
              "status": "Unprocessable Entity",
              "code": 422,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "cookie": [],
              "body": "{\n    \"success\": false,\n    \"code\": \"VALIDATION_ERROR\",\n    \"message\": \"البيانات المدخلة غير صحيحة\",\n    \"data\": null,\n    \"meta\": {},\n    \"errors\": {\n        \"password\": [\n            \"كلمة المرور الحالية غير صحيحة\"\n        ]\n    }\n}"
            }
          ]
        }
      ]
    },
    {
      "name": "02 - Settings & CMS",
      "description": "إعدادات التطبيق، صفحات ثابتة، الأسئلة الشائعة، تواصل معنا، تقييم التطبيق. Controller: App\\Http\\Controllers\\Api\\V1\\SettingsController.",
      "item": [
        {
          "name": "Get App Settings",
          "request": {
            "auth": {
              "type": "noauth"
            },
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Accept-Language",
                "value": "{{lang}}"
              }
            ],
            "url": {
              "raw": "{{base_url}}/settings",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "settings"
              ]
            },
            "description": "إعدادات عامة: اللغات المدعومة، العملة، اسم الشركة، أقل نسخة تطبيق مسموحة (min_version_android/ios)، force_update، بيانات الدعم، السوشيال ميديا، فيتشرز التطبيق (chat_enabled/video_call_enabled — video_call_enabled=false دايمًا في هذه النسخة)."
          },
          "response": [
            {
              "name": "Success",
              "originalRequest": {
                "auth": {
                  "type": "noauth"
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{lang}}"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/settings",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "settings"
                  ]
                },
                "description": "إعدادات عامة: اللغات المدعومة، العملة، اسم الشركة، أقل نسخة تطبيق مسموحة (min_version_android/ios)، force_update، بيانات الدعم، السوشيال ميديا، فيتشرز التطبيق (chat_enabled/video_call_enabled — video_call_enabled=false دايمًا في هذه النسخة)."
              },
              "status": "OK",
              "code": 200,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "cookie": [],
              "body": "{\n    \"success\": true,\n    \"code\": \"OK\",\n    \"message\": \"تمت العملية بنجاح\",\n    \"data\": {\n        \"languages\": [\n            \"ar\",\n            \"en\"\n        ],\n        \"currency\": \"EGP\",\n        \"company_name\": \"BST Clinics\",\n        \"app\": {\n            \"min_version_android\": \"1.0.0\",\n            \"min_version_ios\": \"1.0.0\",\n            \"force_update\": false\n        },\n        \"support\": {\n            \"phone\": \"01507617179\",\n            \"whatsapp\": \"01507617179\",\n            \"email\": \"clinic@bstclinics.com\"\n        },\n        \"social_links\": {\n            \"facebook\": \"https://facebook.com/bstclinics\",\n            \"instagram\": \"https://instagram.com/bstclinics\"\n        },\n        \"features\": {\n            \"chat_enabled\": true,\n            \"video_call_enabled\": false\n        }\n    },\n    \"meta\": {},\n    \"errors\": null\n}"
            }
          ]
        },
        {
          "name": "Onboarding Slides",
          "request": {
            "auth": {
              "type": "noauth"
            },
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Accept-Language",
                "value": "{{lang}}"
              }
            ],
            "url": {
              "raw": "{{base_url}}/settings/onboarding",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "settings",
                "onboarding"
              ]
            },
            "description": "شرائح الـ Onboarding النشطة، مرتّبة حسب sort_order."
          },
          "response": [
            {
              "name": "Success",
              "originalRequest": {
                "auth": {
                  "type": "noauth"
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{lang}}"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/settings/onboarding",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "settings",
                    "onboarding"
                  ]
                },
                "description": "شرائح الـ Onboarding النشطة، مرتّبة حسب sort_order."
              },
              "status": "OK",
              "code": 200,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "cookie": [],
              "body": "{\n    \"success\": true,\n    \"code\": \"OK\",\n    \"message\": \"تمت العملية بنجاح\",\n    \"data\": [\n        {\n            \"id\": 1,\n            \"title\": \"رعاية متخصصة من أجل حياة أكثر صحة\",\n            \"subtitle\": \"احجز موعدك في ثوانٍ\",\n            \"image_url\": \"http://erp.local/assets_web/img/hero/img1.webp\",\n            \"sort_order\": 1\n        }\n    ],\n    \"meta\": {},\n    \"errors\": null\n}"
            }
          ]
        },
        {
          "name": "Static Page (about / privacy_policy / privacy_terms)",
          "request": {
            "auth": {
              "type": "noauth"
            },
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Accept-Language",
                "value": "{{lang}}"
              }
            ],
            "url": {
              "raw": "{{base_url}}/settings/pages/about",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "settings",
                "pages",
                "about"
              ]
            },
            "description": "محتوى صفحة ثابتة. {type} في المسار لازم يكون واحد من: about, privacy_policy, privacy_terms — أي حاجة تانية → 404 NOT_FOUND. غيّر 'about' في آخر الـ URL لـ privacy_policy أو privacy_terms لتجربة باقي الأنواع."
          },
          "response": [
            {
              "name": "Success",
              "originalRequest": {
                "auth": {
                  "type": "noauth"
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{lang}}"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/settings/pages/about",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "settings",
                    "pages",
                    "about"
                  ]
                },
                "description": "محتوى صفحة ثابتة. {type} في المسار لازم يكون واحد من: about, privacy_policy, privacy_terms — أي حاجة تانية → 404 NOT_FOUND. غيّر 'about' في آخر الـ URL لـ privacy_policy أو privacy_terms لتجربة باقي الأنواع."
              },
              "status": "OK",
              "code": 200,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "cookie": [],
              "body": "{\n    \"success\": true,\n    \"code\": \"OK\",\n    \"message\": \"تمت العملية بنجاح\",\n    \"data\": {\n        \"title\": \"BST Clinics\",\n        \"content\": \"عيادات BST هي عيادة طبية متخصصة مكرَّسة للإدارة الشاملة للسمنة وما يرتبط بها من حالات صحية...\",\n        \"image_url\": \"http://erp.local/assets_web/img/about-6-2.png\"\n    },\n    \"meta\": {},\n    \"errors\": null\n}"
            },
            {
              "name": "Not Found - invalid type",
              "originalRequest": {
                "auth": {
                  "type": "noauth"
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{lang}}"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/settings/pages/about",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "settings",
                    "pages",
                    "about"
                  ]
                },
                "description": "محتوى صفحة ثابتة. {type} في المسار لازم يكون واحد من: about, privacy_policy, privacy_terms — أي حاجة تانية → 404 NOT_FOUND. غيّر 'about' في آخر الـ URL لـ privacy_policy أو privacy_terms لتجربة باقي الأنواع."
              },
              "status": "Not Found",
              "code": 404,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "cookie": [],
              "body": "{\n    \"success\": false,\n    \"code\": \"NOT_FOUND\",\n    \"message\": \"العنصر المطلوب غير موجود\",\n    \"data\": null,\n    \"meta\": {},\n    \"errors\": null\n}"
            }
          ]
        },
        {
          "name": "FAQs",
          "request": {
            "auth": {
              "type": "noauth"
            },
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Accept-Language",
                "value": "{{lang}}"
              }
            ],
            "url": {
              "raw": "{{base_url}}/settings/faqs?category=&q=",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "settings",
                "faqs"
              ],
              "query": [
                {
                  "key": "category",
                  "value": "",
                  "description": "اختياري — فلترة حسب تصنيف السؤال"
                },
                {
                  "key": "q",
                  "value": "",
                  "description": "اختياري — بحث نصي في السؤال/الإجابة"
                }
              ]
            },
            "description": "الأسئلة الشائعة النشطة، مع فلترة اختيارية بالتصنيف أو بحث نصي."
          },
          "response": [
            {
              "name": "Success",
              "originalRequest": {
                "auth": {
                  "type": "noauth"
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{lang}}"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/settings/faqs?category=&q=",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "settings",
                    "faqs"
                  ],
                  "query": [
                    {
                      "key": "category",
                      "value": "",
                      "description": "اختياري — فلترة حسب تصنيف السؤال"
                    },
                    {
                      "key": "q",
                      "value": "",
                      "description": "اختياري — بحث نصي في السؤال/الإجابة"
                    }
                  ]
                },
                "description": "الأسئلة الشائعة النشطة، مع فلترة اختيارية بالتصنيف أو بحث نصي."
              },
              "status": "OK",
              "code": 200,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "cookie": [],
              "body": "{\n    \"success\": true,\n    \"code\": \"OK\",\n    \"message\": \"تمت العملية بنجاح\",\n    \"data\": [\n        {\n            \"id\": 1,\n            \"question\": \"كيف يمكنني حجز موعد في عيادات BST؟\",\n            \"answer\": \"يمكنك حجز موعدك بسهولة من خلال نموذج الحجز الإلكتروني، أو بالتواصل مع أحد فروع العيادة عبر الهاتف أو الواتساب.\",\n            \"category\": \"appointments\"\n        },\n        {\n            \"id\": 3,\n            \"question\": \"هل تقدمون استشارات عبر الإنترنت؟\",\n            \"answer\": \"نعم، تقدم عيادات BST استشارات عبر الإنترنت حيثما أمكن.\",\n            \"category\": \"online\"\n        }\n    ],\n    \"meta\": {},\n    \"errors\": null\n}"
            }
          ]
        },
        {
          "name": "Store Contact Us",
          "request": {
            "auth": {
              "type": "noauth"
            },
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Accept-Language",
                "value": "{{lang}}"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/settings/contact",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "settings",
                "contact"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"Test Patient\",\n  \"email\": \"test.patient@example.com\",\n  \"phone\": \"01012345678\",\n  \"subject\": \"استفسار عن الحجز\",\n  \"message\": \"عايز أعرف إزاي ألغي حجز.\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "description": "إرسال رسالة تواصل معنا — متاح بدون تسجيل دخول.\n\n| الحقل | النوع | القواعد |\n|---|---|---|\n| name | string | مطلوب، أقصى 255 حرف |\n| email | string | مطلوب، بريد صالح |\n| phone | string | مطلوب، أقصى 50 حرف |\n| subject | string | مطلوب، أقصى 255 حرف |\n| message | string | مطلوب |\n\nالنجاح 201 CREATED، data فاضية ({})."
          },
          "response": [
            {
              "name": "Success",
              "originalRequest": {
                "auth": {
                  "type": "noauth"
                },
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{lang}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/settings/contact",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "settings",
                    "contact"
                  ]
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"name\": \"Test Patient\",\n  \"email\": \"test.patient@example.com\",\n  \"phone\": \"01012345678\",\n  \"subject\": \"استفسار عن الحجز\",\n  \"message\": \"عايز أعرف إزاي ألغي حجز.\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "description": "إرسال رسالة تواصل معنا — متاح بدون تسجيل دخول.\n\n| الحقل | النوع | القواعد |\n|---|---|---|\n| name | string | مطلوب، أقصى 255 حرف |\n| email | string | مطلوب، بريد صالح |\n| phone | string | مطلوب، أقصى 50 حرف |\n| subject | string | مطلوب، أقصى 255 حرف |\n| message | string | مطلوب |\n\nالنجاح 201 CREATED، data فاضية ({})."
              },
              "status": "Created",
              "code": 201,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "cookie": [],
              "body": "{\n    \"success\": true,\n    \"code\": \"CREATED\",\n    \"message\": \"تم الإنشاء بنجاح\",\n    \"data\": null,\n    \"meta\": {},\n    \"errors\": null\n}"
            },
            {
              "name": "Validation Error",
              "originalRequest": {
                "auth": {
                  "type": "noauth"
                },
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{lang}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/settings/contact",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "settings",
                    "contact"
                  ]
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"name\": \"Test Patient\",\n  \"email\": \"test.patient@example.com\",\n  \"phone\": \"01012345678\",\n  \"subject\": \"استفسار عن الحجز\",\n  \"message\": \"عايز أعرف إزاي ألغي حجز.\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "description": "إرسال رسالة تواصل معنا — متاح بدون تسجيل دخول.\n\n| الحقل | النوع | القواعد |\n|---|---|---|\n| name | string | مطلوب، أقصى 255 حرف |\n| email | string | مطلوب، بريد صالح |\n| phone | string | مطلوب، أقصى 50 حرف |\n| subject | string | مطلوب، أقصى 255 حرف |\n| message | string | مطلوب |\n\nالنجاح 201 CREATED، data فاضية ({})."
              },
              "status": "Unprocessable Entity",
              "code": 422,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "cookie": [],
              "body": "{\n    \"success\": false,\n    \"code\": \"VALIDATION_ERROR\",\n    \"message\": \"البيانات المدخلة غير صحيحة\",\n    \"data\": null,\n    \"meta\": {},\n    \"errors\": {\n        \"email\": [\n            \"حقل البريد الإلكتروني مطلوب\"\n        ],\n        \"message\": [\n            \"حقل الرسالة مطلوب\"\n        ]\n    }\n}"
            }
          ]
        },
        {
          "name": "Store App Review",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Accept-Language",
                "value": "{{lang}}"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/settings/app-review",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "settings",
                "app-review"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"rating\": 5,\n  \"comment\": \"تطبيق ممتاز وسهل الاستخدام\",\n  \"platform\": \"android\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "description": "تقييم التطبيق (مش تقييم دكتور/عيادة). مسموح بدون توكن (anonymous) — لو بعت Authorization هيتربط الريفيو بالمستخدم.\n\n| الحقل | النوع | القواعد |\n|---|---|---|\n| rating | integer | مطلوب، 1 إلى 5 |\n| comment | string | اختياري، أقصى 2000 حرف |\n| platform | string | اختياري، ios أو android أو web |"
          },
          "response": [
            {
              "name": "Success",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{lang}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/settings/app-review",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "settings",
                    "app-review"
                  ]
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"rating\": 5,\n  \"comment\": \"تطبيق ممتاز وسهل الاستخدام\",\n  \"platform\": \"android\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "description": "تقييم التطبيق (مش تقييم دكتور/عيادة). مسموح بدون توكن (anonymous) — لو بعت Authorization هيتربط الريفيو بالمستخدم.\n\n| الحقل | النوع | القواعد |\n|---|---|---|\n| rating | integer | مطلوب، 1 إلى 5 |\n| comment | string | اختياري، أقصى 2000 حرف |\n| platform | string | اختياري، ios أو android أو web |"
              },
              "status": "Created",
              "code": 201,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "cookie": [],
              "body": "{\n    \"success\": true,\n    \"code\": \"CREATED\",\n    \"message\": \"تم الإنشاء بنجاح\",\n    \"data\": null,\n    \"meta\": {},\n    \"errors\": null\n}"
            },
            {
              "name": "Validation Error",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{lang}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/settings/app-review",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "settings",
                    "app-review"
                  ]
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"rating\": 5,\n  \"comment\": \"تطبيق ممتاز وسهل الاستخدام\",\n  \"platform\": \"android\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "description": "تقييم التطبيق (مش تقييم دكتور/عيادة). مسموح بدون توكن (anonymous) — لو بعت Authorization هيتربط الريفيو بالمستخدم.\n\n| الحقل | النوع | القواعد |\n|---|---|---|\n| rating | integer | مطلوب، 1 إلى 5 |\n| comment | string | اختياري، أقصى 2000 حرف |\n| platform | string | اختياري، ios أو android أو web |"
              },
              "status": "Unprocessable Entity",
              "code": 422,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "cookie": [],
              "body": "{\n    \"success\": false,\n    \"code\": \"VALIDATION_ERROR\",\n    \"message\": \"البيانات المدخلة غير صحيحة\",\n    \"data\": null,\n    \"meta\": {},\n    \"errors\": {\n        \"rating\": [\n            \"يجب أن يكون rating بين 1 و 5\"\n        ]\n    }\n}"
            }
          ]
        }
      ]
    },
    {
      "name": "03 - Lookups & Browsing",
      "description": "مسارات عامة (بدون توكن): تخصصات، عيادات، بحث عن دكاترة، بروفايل الدكتور، الشاشة الرئيسية. Controllers: SpecialtyController, ClinicProfileController, DoctorController, HomeController.",
      "item": [
        {
          "name": "Specialties",
          "request": {
            "auth": {
              "type": "noauth"
            },
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Accept-Language",
                "value": "{{lang}}"
              }
            ],
            "url": {
              "raw": "{{base_url}}/lookups/specialties",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "lookups",
                "specialties"
              ]
            },
            "description": "قائمة كل التخصصات النشطة (is_active=true)، بدون ترقيم صفحات."
          },
          "response": [
            {
              "name": "Success",
              "originalRequest": {
                "auth": {
                  "type": "noauth"
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{lang}}"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/lookups/specialties",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "lookups",
                    "specialties"
                  ]
                },
                "description": "قائمة كل التخصصات النشطة (is_active=true)، بدون ترقيم صفحات."
              },
              "status": "OK",
              "code": 200,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "cookie": [],
              "body": "{\n    \"success\": true,\n    \"code\": \"OK\",\n    \"message\": \"تمت العملية بنجاح\",\n    \"data\": [\n        {\n            \"id\": 1,\n            \"name\": \"الباطنة\",\n            \"slug\": \"internal_medicine\",\n            \"description\": \"رعاية شاملة للصحة العامة للبالغين، والحالات المزمنة، والحالات المعقدة...\",\n            \"icon_url\": \"http://erp.local/assets_web/img/service/img1.webp\",\n            \"doctors_count\": 2\n        },\n        {\n            \"id\": 4,\n            \"name\": \"القلب\",\n            \"slug\": \"cardiology\",\n            \"description\": \"تقييم ومتابعة صحة القلب، خاصة للمرضى الذين يؤثر وزنهم...\",\n            \"icon_url\": \"http://erp.local/assets_web/img/service/img4.webp\",\n            \"doctors_count\": 2\n        }\n    ],\n    \"meta\": {},\n    \"errors\": null\n}"
            }
          ]
        },
        {
          "name": "Clinics",
          "request": {
            "auth": {
              "type": "noauth"
            },
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Accept-Language",
                "value": "{{lang}}"
              }
            ],
            "url": {
              "raw": "{{base_url}}/clinics?branch_id={{branch_id}}",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "clinics"
              ],
              "query": [
                {
                  "key": "branch_id",
                  "value": "{{branch_id}}",
                  "description": "اختياري — فلترة عيادات فرع معيّن"
                }
              ]
            },
            "description": "قائمة مرقّمة (15/صفحة) للعيادات النشطة."
          },
          "response": [
            {
              "name": "Success",
              "originalRequest": {
                "auth": {
                  "type": "noauth"
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{lang}}"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/clinics?branch_id={{branch_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "clinics"
                  ],
                  "query": [
                    {
                      "key": "branch_id",
                      "value": "{{branch_id}}",
                      "description": "اختياري — فلترة عيادات فرع معيّن"
                    }
                  ]
                },
                "description": "قائمة مرقّمة (15/صفحة) للعيادات النشطة."
              },
              "status": "OK",
              "code": 200,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "cookie": [],
              "body": "{\n    \"success\": true,\n    \"code\": \"OK\",\n    \"message\": \"تمت العملية بنجاح\",\n    \"data\": [\n        {\n            \"id\": 1,\n            \"name\": \"عيادة الباطنة والقلب\",\n            \"branch\": {\n                \"id\": 3,\n                \"name\": \"Wellness Care Clinic\"\n            },\n            \"logo_url\": null,\n            \"cover_image_url\": null,\n            \"description\": \"...\",\n            \"whatsapp\": \"0100 111 2222\",\n            \"working_hours\": {\n                \"sun\": [\n                    \"09:00\",\n                    \"21:00\"\n                ],\n                \"fri\": null\n            },\n            \"avg_rating\": 5\n        }\n    ],\n    \"meta\": {\n        \"pagination\": {\n            \"current_page\": 1,\n            \"per_page\": 15,\n            \"total\": 6,\n            \"last_page\": 1\n        }\n    },\n    \"errors\": null\n}"
            }
          ]
        },
        {
          "name": "Doctors - Search/List",
          "request": {
            "auth": {
              "type": "noauth"
            },
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Accept-Language",
                "value": "{{lang}}"
              }
            ],
            "url": {
              "raw": "{{base_url}}/doctors?specialty_id={{specialty_id}}&branch_id={{branch_id}}&q=&page=1",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "doctors"
              ],
              "query": [
                {
                  "key": "specialty_id",
                  "value": "{{specialty_id}}",
                  "description": "اختياري"
                },
                {
                  "key": "branch_id",
                  "value": "{{branch_id}}",
                  "description": "اختياري"
                },
                {
                  "key": "q",
                  "value": "",
                  "description": "اختياري — بحث في اسم الدكتور"
                },
                {
                  "key": "page",
                  "value": "1",
                  "description": "اختياري"
                }
              ]
            },
            "description": "بحث/تصفح الدكاترة النشطين (status=active) اللي عندهم عيادة نشطة على الأقل. قائمة مرقّمة (12/صفحة)."
          },
          "response": [
            {
              "name": "Success",
              "originalRequest": {
                "auth": {
                  "type": "noauth"
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{lang}}"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/doctors?specialty_id={{specialty_id}}&branch_id={{branch_id}}&q=&page=1",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "doctors"
                  ],
                  "query": [
                    {
                      "key": "specialty_id",
                      "value": "{{specialty_id}}",
                      "description": "اختياري"
                    },
                    {
                      "key": "branch_id",
                      "value": "{{branch_id}}",
                      "description": "اختياري"
                    },
                    {
                      "key": "q",
                      "value": "",
                      "description": "اختياري — بحث في اسم الدكتور"
                    },
                    {
                      "key": "page",
                      "value": "1",
                      "description": "اختياري"
                    }
                  ]
                },
                "description": "بحث/تصفح الدكاترة النشطين (status=active) اللي عندهم عيادة نشطة على الأقل. قائمة مرقّمة (12/صفحة)."
              },
              "status": "OK",
              "code": 200,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "cookie": [],
              "body": "{\n    \"success\": true,\n    \"code\": \"OK\",\n    \"message\": \"تمت العملية بنجاح\",\n    \"data\": [\n        {\n            \"id\": 1,\n            \"name\": \"Dr. Ahmed Hassan\",\n            \"photo_url\": null,\n            \"specialty\": {\n                \"id\": 1,\n                \"name\": \"الباطنة\"\n            },\n            \"years_experience\": 15,\n            \"average_rating\": 5\n        }\n    ],\n    \"meta\": {\n        \"pagination\": {\n            \"current_page\": 1,\n            \"per_page\": 12,\n            \"total\": 10,\n            \"last_page\": 1\n        }\n    },\n    \"errors\": null\n}"
            }
          ]
        },
        {
          "name": "Doctor Detail",
          "request": {
            "auth": {
              "type": "noauth"
            },
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Accept-Language",
                "value": "{{lang}}"
              }
            ],
            "url": {
              "raw": "{{base_url}}/doctors/{{doctor_id}}",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "doctors",
                "{{doctor_id}}"
              ]
            },
            "description": "بروفايل الدكتور الكامل: العيادات النشطة (بأسعار visit/online فقط — followup لا يظهر أبدًا)، الجدول الأسبوعي، التقييم العام، آخر 5 تقييمات. لو الدكتور غير نشط أو مالوش عيادات → 404."
          },
          "response": [
            {
              "name": "Success",
              "originalRequest": {
                "auth": {
                  "type": "noauth"
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{lang}}"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/doctors/{{doctor_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "doctors",
                    "{{doctor_id}}"
                  ]
                },
                "description": "بروفايل الدكتور الكامل: العيادات النشطة (بأسعار visit/online فقط — followup لا يظهر أبدًا)، الجدول الأسبوعي، التقييم العام، آخر 5 تقييمات. لو الدكتور غير نشط أو مالوش عيادات → 404."
              },
              "status": "OK",
              "code": 200,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "cookie": [],
              "body": "{\n    \"success\": true,\n    \"code\": \"OK\",\n    \"message\": \"تمت العملية بنجاح\",\n    \"data\": {\n        \"id\": 1,\n        \"name\": \"Dr. Ahmed Hassan\",\n        \"photo_url\": null,\n        \"bio\": \"...\",\n        \"qualifications\": \"MD, board certified\",\n        \"years_experience\": 15,\n        \"specialty\": {\n            \"id\": 1,\n            \"name\": \"الباطنة\"\n        },\n        \"average_rating\": 5,\n        \"clinics\": [\n            {\n                \"clinic_profile_id\": 1,\n                \"name\": \"عيادة الباطنة والقلب\",\n                \"branch\": {\n                    \"id\": 3,\n                    \"name\": \"Wellness Care Clinic\"\n                },\n                \"avg_rating\": 5,\n                \"prices\": [\n                    {\n                        \"service_type\": \"online\",\n                        \"total_price\": 200\n                    },\n                    {\n                        \"service_type\": \"visit\",\n                        \"total_price\": 300\n                    }\n                ],\n                \"schedule\": [\n                    {\n                        \"day_of_week\": 0,\n                        \"label\": \"Morning\",\n                        \"start_time\": \"09:00:00\",\n                        \"end_time\": \"13:00:00\"\n                    }\n                ]\n            }\n        ],\n        \"reviews\": [\n            {\n                \"id\": 1,\n                \"doctor_rating\": 5,\n                \"doctor_comment\": \"Very attentive and explained everything clearly.\",\n                \"clinic_rating\": 5,\n                \"clinic_comment\": \"Clean clinic, short wait time.\",\n                \"patient_name\": \"Sara\",\n                \"created_at\": \"2026-09-04T15:22:26+03:00\"\n            }\n        ]\n    },\n    \"meta\": {},\n    \"errors\": null\n}"
            },
            {
              "name": "Not Found - inactive or no active clinics",
              "originalRequest": {
                "auth": {
                  "type": "noauth"
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{lang}}"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/doctors/{{doctor_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "doctors",
                    "{{doctor_id}}"
                  ]
                },
                "description": "بروفايل الدكتور الكامل: العيادات النشطة (بأسعار visit/online فقط — followup لا يظهر أبدًا)، الجدول الأسبوعي، التقييم العام، آخر 5 تقييمات. لو الدكتور غير نشط أو مالوش عيادات → 404."
              },
              "status": "Not Found",
              "code": 404,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "cookie": [],
              "body": "{\n    \"success\": false,\n    \"code\": \"NOT_FOUND\",\n    \"message\": \"العنصر المطلوب غير موجود\",\n    \"data\": null,\n    \"meta\": {},\n    \"errors\": null\n}"
            }
          ]
        },
        {
          "name": "Doctor Reviews",
          "request": {
            "auth": {
              "type": "noauth"
            },
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Accept-Language",
                "value": "{{lang}}"
              }
            ],
            "url": {
              "raw": "{{base_url}}/doctors/{{doctor_id}}/reviews?page=1",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "doctors",
                "{{doctor_id}}",
                "reviews"
              ],
              "query": [
                {
                  "key": "page",
                  "value": "1"
                }
              ]
            },
            "description": "كل تقييمات الدكتور اللي فيها تعليق نصي، مرقّمة (10/صفحة)."
          },
          "response": [
            {
              "name": "Success",
              "originalRequest": {
                "auth": {
                  "type": "noauth"
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{lang}}"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/doctors/{{doctor_id}}/reviews?page=1",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "doctors",
                    "{{doctor_id}}",
                    "reviews"
                  ],
                  "query": [
                    {
                      "key": "page",
                      "value": "1"
                    }
                  ]
                },
                "description": "كل تقييمات الدكتور اللي فيها تعليق نصي، مرقّمة (10/صفحة)."
              },
              "status": "OK",
              "code": 200,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "cookie": [],
              "body": "{\n    \"success\": true,\n    \"code\": \"OK\",\n    \"message\": \"تمت العملية بنجاح\",\n    \"data\": [\n        {\n            \"id\": 1,\n            \"doctor_rating\": 5,\n            \"doctor_comment\": \"Very attentive and explained everything clearly.\",\n            \"clinic_rating\": 5,\n            \"clinic_comment\": \"Clean clinic, short wait time.\",\n            \"patient_name\": \"Sara\",\n            \"created_at\": \"2026-09-04T15:22:26+03:00\"\n        }\n    ],\n    \"meta\": {\n        \"pagination\": {\n            \"current_page\": 1,\n            \"per_page\": 10,\n            \"total\": 1,\n            \"last_page\": 1\n        }\n    },\n    \"errors\": null\n}"
            }
          ]
        },
        {
          "name": "Home (Aggregate)",
          "request": {
            "auth": {
              "type": "noauth"
            },
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Accept-Language",
                "value": "{{lang}}"
              }
            ],
            "url": {
              "raw": "{{base_url}}/home",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "home"
              ]
            },
            "description": "نداء واحد للشاشة الرئيسية: تخصصات + دكاترة مميزين (الأعلى تقييمًا) + عروض نشطة."
          },
          "response": [
            {
              "name": "Success",
              "originalRequest": {
                "auth": {
                  "type": "noauth"
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{lang}}"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/home",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "home"
                  ]
                },
                "description": "نداء واحد للشاشة الرئيسية: تخصصات + دكاترة مميزين (الأعلى تقييمًا) + عروض نشطة."
              },
              "status": "OK",
              "code": 200,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "cookie": [],
              "body": "{\n    \"success\": true,\n    \"code\": \"OK\",\n    \"message\": \"تمت العملية بنجاح\",\n    \"data\": {\n        \"specialties\": [\n            {\n                \"id\": 1,\n                \"name\": \"الباطنة\",\n                \"slug\": \"internal_medicine\"\n            }\n        ],\n        \"featured_doctors\": [\n            {\n                \"id\": 1,\n                \"name\": \"Dr. Ahmed Hassan\",\n                \"photo_url\": null,\n                \"specialty\": {\n                    \"id\": 1,\n                    \"name\": \"الباطنة\"\n                },\n                \"years_experience\": 15,\n                \"average_rating\": 5\n            }\n        ],\n        \"active_offers\": [\n            {\n                \"id\": 1,\n                \"title\": \"Grand Opening Discount\",\n                \"description\": \"15% off any consultation or visit for new patients this month.\",\n                \"discount_type\": \"percentage\",\n                \"discount_value\": 15,\n                \"starts_at\": \"2026-09-01T15:22:26+03:00\",\n                \"ends_at\": \"2026-10-04T15:22:26+03:00\"\n            }\n        ]\n    },\n    \"meta\": {},\n    \"errors\": null\n}"
            }
          ]
        }
      ]
    },
    {
      "name": "04 - Booking",
      "description": "الحجوزات: مواعيد متاحة، إنشاء/عرض/إلغاء/تأجيل، تقييم بعد الزيارة. كل المسارات هنا محمية. Controller: Api\\V1\\Clinic\\BookingController.\n\n⚠️ قاعدة ثابتة: type = followup غير متاح أبدًا من الموبايل (422 لو اتبعتت).",
      "item": [
        {
          "name": "Available Slots",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Accept-Language",
                "value": "{{lang}}"
              }
            ],
            "url": {
              "raw": "{{base_url}}/doctors/{{doctor_id}}/clinics/{{clinic_profile_id}}/slots?date={{booking_date}}",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "doctors",
                "{{doctor_id}}",
                "clinics",
                "{{clinic_profile_id}}",
                "slots"
              ],
              "query": [
                {
                  "key": "date",
                  "value": "{{booking_date}}",
                  "description": "مطلوب، YYYY-MM-DD، لازم يكون اليوم أو بعده"
                }
              ]
            },
            "description": "المواعيد المتاحة لدكتور معيّن في عيادة معيّنة في يوم معيّن.\n\n| Query | النوع | القواعد |\n|---|---|---|\n| date | date | مطلوب، صيغة YYYY-MM-DD، >= اليوم |\n\nلو الربط بين الدكتور والعيادة مش موجود/مش نشط → 404."
          },
          "response": [
            {
              "name": "Success",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{lang}}"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/doctors/{{doctor_id}}/clinics/{{clinic_profile_id}}/slots?date={{booking_date}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "doctors",
                    "{{doctor_id}}",
                    "clinics",
                    "{{clinic_profile_id}}",
                    "slots"
                  ],
                  "query": [
                    {
                      "key": "date",
                      "value": "{{booking_date}}",
                      "description": "مطلوب، YYYY-MM-DD، لازم يكون اليوم أو بعده"
                    }
                  ]
                },
                "description": "المواعيد المتاحة لدكتور معيّن في عيادة معيّنة في يوم معيّن.\n\n| Query | النوع | القواعد |\n|---|---|---|\n| date | date | مطلوب، صيغة YYYY-MM-DD، >= اليوم |\n\nلو الربط بين الدكتور والعيادة مش موجود/مش نشط → 404."
              },
              "status": "OK",
              "code": 200,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "cookie": [],
              "body": "{\n    \"success\": true,\n    \"code\": \"OK\",\n    \"message\": \"تمت العملية بنجاح\",\n    \"data\": {\n        \"date\": \"2026-12-01\",\n        \"slots\": [\n            \"09:00\",\n            \"09:20\",\n            \"09:40\",\n            \"17:00\",\n            \"17:20\"\n        ]\n    },\n    \"meta\": {},\n    \"errors\": null\n}"
            },
            {
              "name": "Not Found - doctor/clinic not linked",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{lang}}"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/doctors/{{doctor_id}}/clinics/{{clinic_profile_id}}/slots?date={{booking_date}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "doctors",
                    "{{doctor_id}}",
                    "clinics",
                    "{{clinic_profile_id}}",
                    "slots"
                  ],
                  "query": [
                    {
                      "key": "date",
                      "value": "{{booking_date}}",
                      "description": "مطلوب، YYYY-MM-DD، لازم يكون اليوم أو بعده"
                    }
                  ]
                },
                "description": "المواعيد المتاحة لدكتور معيّن في عيادة معيّنة في يوم معيّن.\n\n| Query | النوع | القواعد |\n|---|---|---|\n| date | date | مطلوب، صيغة YYYY-MM-DD، >= اليوم |\n\nلو الربط بين الدكتور والعيادة مش موجود/مش نشط → 404."
              },
              "status": "Not Found",
              "code": 404,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "cookie": [],
              "body": "{\n    \"success\": false,\n    \"code\": \"NOT_FOUND\",\n    \"message\": \"العنصر المطلوب غير موجود\",\n    \"data\": null,\n    \"meta\": {},\n    \"errors\": null\n}"
            }
          ]
        },
        {
          "name": "Create Booking",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Accept-Language",
                "value": "{{lang}}"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/bookings",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "bookings"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"doctor_id\": {{doctor_id}},\n  \"clinic_profile_id\": {{clinic_profile_id}},\n  \"type\": \"visit\",\n  \"date\": \"{{booking_date}}\",\n  \"time\": \"{{booking_time}}\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "description": "إنشاء حجز جديد بحالة pending (من غير أي خطوة دفع — الدفع خارج نطاق هذه النسخة).\n\n| الحقل | النوع | القواعد |\n|---|---|---|\n| doctor_id | integer | مطلوب، موجود في clinic_doctors |\n| clinic_profile_id | integer | مطلوب، موجود في clinic_profiles |\n| type | string | مطلوب — **visit أو online فقط** (followup مرفوض دايمًا) |\n| date | date | مطلوب، YYYY-MM-DD، >= اليوم |\n| time | string | مطلوب، صيغة H:i (مثال 10:00) |\n\n**أخطاء محتملة:**\n- 428 MEDICAL_PROFILE_REQUIRED — المريض لسه ملوش ملف طبي (اعمل PUT patient-profile/medical الأول)\n- 422 VALIDATION_ERROR — type=followup، أو تاريخ في الماضي، أو المعاد ده محجوز فعلًا (\"This slot is no longer available.\")، أو الدكتور مالوش سعر لهذا النوع من الخدمة في هذه العيادة"
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "if (pm.response.code === 201) {",
                  "    var json = pm.response.json();",
                  "    if (json.success && json.data && json.data.id) {",
                  "        pm.collectionVariables.set('booking_id', json.data.id);",
                  "        console.log('booking_id saved:', json.data.id);",
                  "    }",
                  "}"
                ]
              }
            }
          ],
          "response": [
            {
              "name": "Success",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{lang}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/bookings",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "bookings"
                  ]
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"doctor_id\": {{doctor_id}},\n  \"clinic_profile_id\": {{clinic_profile_id}},\n  \"type\": \"visit\",\n  \"date\": \"{{booking_date}}\",\n  \"time\": \"{{booking_time}}\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "description": "إنشاء حجز جديد بحالة pending (من غير أي خطوة دفع — الدفع خارج نطاق هذه النسخة).\n\n| الحقل | النوع | القواعد |\n|---|---|---|\n| doctor_id | integer | مطلوب، موجود في clinic_doctors |\n| clinic_profile_id | integer | مطلوب، موجود في clinic_profiles |\n| type | string | مطلوب — **visit أو online فقط** (followup مرفوض دايمًا) |\n| date | date | مطلوب، YYYY-MM-DD، >= اليوم |\n| time | string | مطلوب، صيغة H:i (مثال 10:00) |\n\n**أخطاء محتملة:**\n- 428 MEDICAL_PROFILE_REQUIRED — المريض لسه ملوش ملف طبي (اعمل PUT patient-profile/medical الأول)\n- 422 VALIDATION_ERROR — type=followup، أو تاريخ في الماضي، أو المعاد ده محجوز فعلًا (\"This slot is no longer available.\")، أو الدكتور مالوش سعر لهذا النوع من الخدمة في هذه العيادة"
              },
              "status": "Created",
              "code": 201,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "cookie": [],
              "body": "{\n    \"success\": true,\n    \"code\": \"CREATED\",\n    \"message\": \"تم الإنشاء بنجاح\",\n    \"data\": {\n        \"id\": 12,\n        \"type\": \"visit\",\n        \"scheduled_at\": \"2026-12-01T09:00:00+03:00\",\n        \"duration_minutes\": 20,\n        \"price\": 300,\n        \"status\": \"pending\",\n        \"doctor\": {\n            \"id\": 1,\n            \"name\": \"Dr. Ahmed Hassan\",\n            \"photo_url\": null,\n            \"specialty\": \"الباطنة\"\n        },\n        \"clinic_profile\": {\n            \"id\": 1,\n            \"name\": \"عيادة الباطنة والقلب\",\n            \"branch\": \"Wellness Care Clinic\"\n        },\n        \"cancelled_at\": null,\n        \"cancel_reason\": null,\n        \"rescheduled_from_id\": null,\n        \"medical_record_available\": false,\n        \"review_submitted\": false,\n        \"followup\": null\n    },\n    \"meta\": {},\n    \"errors\": null\n}"
            },
            {
              "name": "Medical Profile Required",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{lang}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/bookings",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "bookings"
                  ]
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"doctor_id\": {{doctor_id}},\n  \"clinic_profile_id\": {{clinic_profile_id}},\n  \"type\": \"visit\",\n  \"date\": \"{{booking_date}}\",\n  \"time\": \"{{booking_time}}\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "description": "إنشاء حجز جديد بحالة pending (من غير أي خطوة دفع — الدفع خارج نطاق هذه النسخة).\n\n| الحقل | النوع | القواعد |\n|---|---|---|\n| doctor_id | integer | مطلوب، موجود في clinic_doctors |\n| clinic_profile_id | integer | مطلوب، موجود في clinic_profiles |\n| type | string | مطلوب — **visit أو online فقط** (followup مرفوض دايمًا) |\n| date | date | مطلوب، YYYY-MM-DD، >= اليوم |\n| time | string | مطلوب، صيغة H:i (مثال 10:00) |\n\n**أخطاء محتملة:**\n- 428 MEDICAL_PROFILE_REQUIRED — المريض لسه ملوش ملف طبي (اعمل PUT patient-profile/medical الأول)\n- 422 VALIDATION_ERROR — type=followup، أو تاريخ في الماضي، أو المعاد ده محجوز فعلًا (\"This slot is no longer available.\")، أو الدكتور مالوش سعر لهذا النوع من الخدمة في هذه العيادة"
              },
              "status": "Precondition Required",
              "code": 428,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "cookie": [],
              "body": "{\n    \"success\": false,\n    \"code\": \"MEDICAL_PROFILE_REQUIRED\",\n    \"message\": \"يرجى إكمال ملفك الطبي أولاً\",\n    \"data\": null,\n    \"meta\": {},\n    \"errors\": null\n}"
            },
            {
              "name": "Slot No Longer Available",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{lang}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/bookings",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "bookings"
                  ]
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"doctor_id\": {{doctor_id}},\n  \"clinic_profile_id\": {{clinic_profile_id}},\n  \"type\": \"visit\",\n  \"date\": \"{{booking_date}}\",\n  \"time\": \"{{booking_time}}\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "description": "إنشاء حجز جديد بحالة pending (من غير أي خطوة دفع — الدفع خارج نطاق هذه النسخة).\n\n| الحقل | النوع | القواعد |\n|---|---|---|\n| doctor_id | integer | مطلوب، موجود في clinic_doctors |\n| clinic_profile_id | integer | مطلوب، موجود في clinic_profiles |\n| type | string | مطلوب — **visit أو online فقط** (followup مرفوض دايمًا) |\n| date | date | مطلوب، YYYY-MM-DD، >= اليوم |\n| time | string | مطلوب، صيغة H:i (مثال 10:00) |\n\n**أخطاء محتملة:**\n- 428 MEDICAL_PROFILE_REQUIRED — المريض لسه ملوش ملف طبي (اعمل PUT patient-profile/medical الأول)\n- 422 VALIDATION_ERROR — type=followup، أو تاريخ في الماضي، أو المعاد ده محجوز فعلًا (\"This slot is no longer available.\")، أو الدكتور مالوش سعر لهذا النوع من الخدمة في هذه العيادة"
              },
              "status": "Unprocessable Entity",
              "code": 422,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "cookie": [],
              "body": "{\n    \"success\": false,\n    \"code\": \"VALIDATION_ERROR\",\n    \"message\": \"This slot is no longer available.\",\n    \"data\": null,\n    \"meta\": {},\n    \"errors\": null\n}"
            }
          ]
        },
        {
          "name": "My Bookings",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Accept-Language",
                "value": "{{lang}}"
              }
            ],
            "url": {
              "raw": "{{base_url}}/bookings/mine?status=&page=1",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "bookings",
                "mine"
              ],
              "query": [
                {
                  "key": "status",
                  "value": "",
                  "description": "اختياري: pending, confirmed, completed, cancelled"
                },
                {
                  "key": "page",
                  "value": "1"
                }
              ]
            },
            "description": "حجوزات المستخدم المسجّل دخوله فقط، الأحدث أولًا (10/صفحة)."
          },
          "response": [
            {
              "name": "Success",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{lang}}"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/bookings/mine?status=&page=1",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "bookings",
                    "mine"
                  ],
                  "query": [
                    {
                      "key": "status",
                      "value": "",
                      "description": "اختياري: pending, confirmed, completed, cancelled"
                    },
                    {
                      "key": "page",
                      "value": "1"
                    }
                  ]
                },
                "description": "حجوزات المستخدم المسجّل دخوله فقط، الأحدث أولًا (10/صفحة)."
              },
              "status": "OK",
              "code": 200,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "cookie": [],
              "body": "{\n    \"success\": true,\n    \"code\": \"OK\",\n    \"message\": \"تمت العملية بنجاح\",\n    \"data\": [\n        {\n            \"id\": 12,\n            \"type\": \"visit\",\n            \"scheduled_at\": \"2026-12-01T09:00:00+03:00\",\n            \"duration_minutes\": 20,\n            \"price\": 300,\n            \"status\": \"pending\",\n            \"doctor\": {\n                \"id\": 1,\n                \"name\": \"Dr. Ahmed Hassan\",\n                \"photo_url\": null,\n                \"specialty\": \"الباطنة\"\n            },\n            \"clinic_profile\": {\n                \"id\": 1,\n                \"name\": \"عيادة الباطنة والقلب\",\n                \"branch\": \"Wellness Care Clinic\"\n            },\n            \"cancelled_at\": null,\n            \"cancel_reason\": null,\n            \"rescheduled_from_id\": null,\n            \"medical_record_available\": false,\n            \"review_submitted\": false,\n            \"followup\": null\n        },\n        {\n            \"id\": 9,\n            \"type\": \"visit\",\n            \"scheduled_at\": \"2026-12-01T09:00:00+03:00\",\n            \"duration_minutes\": 20,\n            \"price\": 300,\n            \"status\": \"completed\",\n            \"doctor\": {\n                \"id\": 1,\n                \"name\": \"Dr. Ahmed Hassan\",\n                \"photo_url\": null,\n                \"specialty\": \"الباطنة\"\n            },\n            \"clinic_profile\": {\n                \"id\": 1,\n                \"name\": \"عيادة الباطنة والقلب\",\n                \"branch\": \"Wellness Care Clinic\"\n            },\n            \"cancelled_at\": null,\n            \"cancel_reason\": null,\n            \"rescheduled_from_id\": null,\n            \"medical_record_available\": true,\n            \"review_submitted\": true,\n            \"followup\": null\n        }\n    ],\n    \"meta\": {\n        \"pagination\": {\n            \"current_page\": 1,\n            \"per_page\": 10,\n            \"total\": 2,\n            \"last_page\": 1\n        }\n    },\n    \"errors\": null\n}"
            }
          ]
        },
        {
          "name": "Booking Detail",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Accept-Language",
                "value": "{{lang}}"
              }
            ],
            "url": {
              "raw": "{{base_url}}/bookings/{{booking_id}}",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "bookings",
                "{{booking_id}}"
              ]
            },
            "description": "تفاصيل حجز واحد. بيرجع فيها معلومة followup للقراءة فقط (is_required/due_date/status) لو الدكتور نصح بمتابعة. لو الحجز مش بتاع المستخدم ده → 403 FORBIDDEN."
          },
          "response": [
            {
              "name": "Success",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{lang}}"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/bookings/{{booking_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "bookings",
                    "{{booking_id}}"
                  ]
                },
                "description": "تفاصيل حجز واحد. بيرجع فيها معلومة followup للقراءة فقط (is_required/due_date/status) لو الدكتور نصح بمتابعة. لو الحجز مش بتاع المستخدم ده → 403 FORBIDDEN."
              },
              "status": "OK",
              "code": 200,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "cookie": [],
              "body": "{\n    \"success\": true,\n    \"code\": \"OK\",\n    \"message\": \"تمت العملية بنجاح\",\n    \"data\": {\n        \"id\": 12,\n        \"type\": \"visit\",\n        \"scheduled_at\": \"2026-12-01T09:00:00+03:00\",\n        \"duration_minutes\": 20,\n        \"price\": 300,\n        \"status\": \"pending\",\n        \"doctor\": {\n            \"id\": 1,\n            \"name\": \"Dr. Ahmed Hassan\",\n            \"photo_url\": null,\n            \"specialty\": \"الباطنة\"\n        },\n        \"clinic_profile\": {\n            \"id\": 1,\n            \"name\": \"عيادة الباطنة والقلب\",\n            \"branch\": \"Wellness Care Clinic\"\n        },\n        \"cancelled_at\": null,\n        \"cancel_reason\": null,\n        \"rescheduled_from_id\": null,\n        \"medical_record_available\": false,\n        \"review_submitted\": false,\n        \"followup\": null\n    },\n    \"meta\": {},\n    \"errors\": null\n}"
            },
            {
              "name": "Forbidden - not your booking",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{lang}}"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/bookings/{{booking_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "bookings",
                    "{{booking_id}}"
                  ]
                },
                "description": "تفاصيل حجز واحد. بيرجع فيها معلومة followup للقراءة فقط (is_required/due_date/status) لو الدكتور نصح بمتابعة. لو الحجز مش بتاع المستخدم ده → 403 FORBIDDEN."
              },
              "status": "Forbidden",
              "code": 403,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "cookie": [],
              "body": "{\n    \"success\": false,\n    \"code\": \"FORBIDDEN\",\n    \"message\": \"غير مصرح لك بتنفيذ هذا الإجراء\",\n    \"data\": null,\n    \"meta\": {},\n    \"errors\": null\n}"
            }
          ]
        },
        {
          "name": "Cancel Booking",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Accept-Language",
                "value": "{{lang}}"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/bookings/{{booking_id}}/cancel",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "bookings",
                "{{booking_id}}",
                "cancel"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"reason\": \"ظرف طارئ\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "description": "إلغاء حجز.\n\n| الحقل | النوع | القواعد |\n|---|---|---|\n| reason | string | اختياري، أقصى 500 حرف |\n\nلو اتخطت نافذة الإلغاء المسموحة (افتراضي 24 ساعة قبل الموعد) → 422 VALIDATION_ERROR."
          },
          "response": [
            {
              "name": "Success",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{lang}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/bookings/{{booking_id}}/cancel",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "bookings",
                    "{{booking_id}}",
                    "cancel"
                  ]
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"reason\": \"ظرف طارئ\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "description": "إلغاء حجز.\n\n| الحقل | النوع | القواعد |\n|---|---|---|\n| reason | string | اختياري، أقصى 500 حرف |\n\nلو اتخطت نافذة الإلغاء المسموحة (افتراضي 24 ساعة قبل الموعد) → 422 VALIDATION_ERROR."
              },
              "status": "OK",
              "code": 200,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "cookie": [],
              "body": "{\n    \"success\": true,\n    \"code\": \"OK\",\n    \"message\": \"تمت العملية بنجاح\",\n    \"data\": {\n        \"id\": 12,\n        \"type\": \"visit\",\n        \"scheduled_at\": \"2026-12-01T09:00:00+03:00\",\n        \"duration_minutes\": 20,\n        \"price\": 300,\n        \"status\": \"cancelled\",\n        \"doctor\": {\n            \"id\": 1,\n            \"name\": \"Dr. Ahmed Hassan\",\n            \"photo_url\": null,\n            \"specialty\": \"الباطنة\"\n        },\n        \"clinic_profile\": {\n            \"id\": 1,\n            \"name\": \"عيادة الباطنة والقلب\",\n            \"branch\": \"Wellness Care Clinic\"\n        },\n        \"cancelled_at\": \"2026-11-28T10:00:00+03:00\",\n        \"cancel_reason\": \"Patient request\",\n        \"rescheduled_from_id\": null,\n        \"medical_record_available\": false,\n        \"review_submitted\": false,\n        \"followup\": null\n    },\n    \"meta\": {},\n    \"errors\": null\n}"
            },
            {
              "name": "Cancellation Window Passed",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{lang}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/bookings/{{booking_id}}/cancel",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "bookings",
                    "{{booking_id}}",
                    "cancel"
                  ]
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"reason\": \"ظرف طارئ\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "description": "إلغاء حجز.\n\n| الحقل | النوع | القواعد |\n|---|---|---|\n| reason | string | اختياري، أقصى 500 حرف |\n\nلو اتخطت نافذة الإلغاء المسموحة (افتراضي 24 ساعة قبل الموعد) → 422 VALIDATION_ERROR."
              },
              "status": "Unprocessable Entity",
              "code": 422,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "cookie": [],
              "body": "{\n    \"success\": false,\n    \"code\": \"VALIDATION_ERROR\",\n    \"message\": \"Cancellation window has passed for this booking.\",\n    \"data\": null,\n    \"meta\": {},\n    \"errors\": null\n}"
            }
          ]
        },
        {
          "name": "Reschedule Booking",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Accept-Language",
                "value": "{{lang}}"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/bookings/{{booking_id}}/reschedule",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "bookings",
                "{{booking_id}}",
                "reschedule"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date\": \"{{booking_date}}\",\n  \"time\": \"11:00\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "description": "تأجيل حجز لمعاد جديد — بيلغي القديم وينشئ حجز جديد مربوط بيه، وبيرجع **الحجز الجديد**.\n\n| الحقل | النوع | القواعد |\n|---|---|---|\n| date | date | مطلوب، YYYY-MM-DD، >= اليوم |\n| time | string | مطلوب، صيغة H:i |\n\nلو اتخطت نافذة التأجيل (افتراضي 12 ساعة) → 422. لو المعاد الجديد محجوز → 422."
          },
          "response": [
            {
              "name": "Success",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{lang}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/bookings/{{booking_id}}/reschedule",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "bookings",
                    "{{booking_id}}",
                    "reschedule"
                  ]
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"date\": \"{{booking_date}}\",\n  \"time\": \"11:00\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "description": "تأجيل حجز لمعاد جديد — بيلغي القديم وينشئ حجز جديد مربوط بيه، وبيرجع **الحجز الجديد**.\n\n| الحقل | النوع | القواعد |\n|---|---|---|\n| date | date | مطلوب، YYYY-MM-DD، >= اليوم |\n| time | string | مطلوب، صيغة H:i |\n\nلو اتخطت نافذة التأجيل (افتراضي 12 ساعة) → 422. لو المعاد الجديد محجوز → 422."
              },
              "status": "OK",
              "code": 200,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "cookie": [],
              "body": "{\n    \"success\": true,\n    \"code\": \"OK\",\n    \"message\": \"تمت العملية بنجاح\",\n    \"data\": {\n        \"id\": 13,\n        \"type\": \"visit\",\n        \"scheduled_at\": \"2026-12-05T10:00:00+03:00\",\n        \"duration_minutes\": 20,\n        \"price\": 300,\n        \"status\": \"pending\",\n        \"doctor\": {\n            \"id\": 1,\n            \"name\": \"Dr. Ahmed Hassan\",\n            \"photo_url\": null,\n            \"specialty\": \"الباطنة\"\n        },\n        \"clinic_profile\": {\n            \"id\": 1,\n            \"name\": \"عيادة الباطنة والقلب\",\n            \"branch\": \"Wellness Care Clinic\"\n        },\n        \"cancelled_at\": null,\n        \"cancel_reason\": null,\n        \"rescheduled_from_id\": 12,\n        \"medical_record_available\": false,\n        \"review_submitted\": false,\n        \"followup\": null\n    },\n    \"meta\": {},\n    \"errors\": null\n}"
            },
            {
              "name": "Reschedule Window Passed",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{lang}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/bookings/{{booking_id}}/reschedule",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "bookings",
                    "{{booking_id}}",
                    "reschedule"
                  ]
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"date\": \"{{booking_date}}\",\n  \"time\": \"11:00\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "description": "تأجيل حجز لمعاد جديد — بيلغي القديم وينشئ حجز جديد مربوط بيه، وبيرجع **الحجز الجديد**.\n\n| الحقل | النوع | القواعد |\n|---|---|---|\n| date | date | مطلوب، YYYY-MM-DD، >= اليوم |\n| time | string | مطلوب، صيغة H:i |\n\nلو اتخطت نافذة التأجيل (افتراضي 12 ساعة) → 422. لو المعاد الجديد محجوز → 422."
              },
              "status": "Unprocessable Entity",
              "code": 422,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "cookie": [],
              "body": "{\n    \"success\": false,\n    \"code\": \"VALIDATION_ERROR\",\n    \"message\": \"Reschedule window has passed for this booking.\",\n    \"data\": null,\n    \"meta\": {},\n    \"errors\": null\n}"
            }
          ]
        },
        {
          "name": "Submit Review",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Accept-Language",
                "value": "{{lang}}"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/bookings/{{booking_id}}/review",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "bookings",
                "{{booking_id}}",
                "review"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"doctor_rating\": 5,\n  \"doctor_comment\": \"دكتور محترم وشرح كويس\",\n  \"clinic_rating\": 4,\n  \"clinic_comment\": \"العيادة نظيفة والانتظار كان قليل\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "description": "تقييم الحجز بعد اكتماله (تقييم دكتور + عيادة في نفس الطلب).\n\n| الحقل | النوع | القواعد |\n|---|---|---|\n| doctor_rating | integer | مطلوب، 1-5 |\n| doctor_comment | string | اختياري، أقصى 2000 حرف |\n| clinic_rating | integer | مطلوب، 1-5 |\n| clinic_comment | string | اختياري، أقصى 2000 حرف |\n\n**شروط:** الحجز بتاع المستخدم ده (وإلا 403)، حالته completed (وإلا 422)، ومفيش تقييم اتسجل قبل كده (وإلا 409 CONFLICT)."
          },
          "response": [
            {
              "name": "Success",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{lang}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/bookings/{{booking_id}}/review",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "bookings",
                    "{{booking_id}}",
                    "review"
                  ]
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"doctor_rating\": 5,\n  \"doctor_comment\": \"دكتور محترم وشرح كويس\",\n  \"clinic_rating\": 4,\n  \"clinic_comment\": \"العيادة نظيفة والانتظار كان قليل\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "description": "تقييم الحجز بعد اكتماله (تقييم دكتور + عيادة في نفس الطلب).\n\n| الحقل | النوع | القواعد |\n|---|---|---|\n| doctor_rating | integer | مطلوب، 1-5 |\n| doctor_comment | string | اختياري، أقصى 2000 حرف |\n| clinic_rating | integer | مطلوب، 1-5 |\n| clinic_comment | string | اختياري، أقصى 2000 حرف |\n\n**شروط:** الحجز بتاع المستخدم ده (وإلا 403)، حالته completed (وإلا 422)، ومفيش تقييم اتسجل قبل كده (وإلا 409 CONFLICT)."
              },
              "status": "Created",
              "code": 201,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "cookie": [],
              "body": "{\n    \"success\": true,\n    \"code\": \"CREATED\",\n    \"message\": \"تم الإنشاء بنجاح\",\n    \"data\": {\n        \"id\": 2,\n        \"doctor_rating\": 5,\n        \"doctor_comment\": \"Great doctor\",\n        \"clinic_rating\": 4,\n        \"clinic_comment\": \"Nice clinic\",\n        \"patient_name\": \"Hossam\",\n        \"created_at\": \"2026-09-11T00:54:59+03:00\"\n    },\n    \"meta\": {},\n    \"errors\": null\n}"
            },
            {
              "name": "Already Reviewed",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{lang}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/bookings/{{booking_id}}/review",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "bookings",
                    "{{booking_id}}",
                    "review"
                  ]
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"doctor_rating\": 5,\n  \"doctor_comment\": \"دكتور محترم وشرح كويس\",\n  \"clinic_rating\": 4,\n  \"clinic_comment\": \"العيادة نظيفة والانتظار كان قليل\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "description": "تقييم الحجز بعد اكتماله (تقييم دكتور + عيادة في نفس الطلب).\n\n| الحقل | النوع | القواعد |\n|---|---|---|\n| doctor_rating | integer | مطلوب، 1-5 |\n| doctor_comment | string | اختياري، أقصى 2000 حرف |\n| clinic_rating | integer | مطلوب، 1-5 |\n| clinic_comment | string | اختياري، أقصى 2000 حرف |\n\n**شروط:** الحجز بتاع المستخدم ده (وإلا 403)، حالته completed (وإلا 422)، ومفيش تقييم اتسجل قبل كده (وإلا 409 CONFLICT)."
              },
              "status": "Conflict",
              "code": 409,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "cookie": [],
              "body": "{\n    \"success\": false,\n    \"code\": \"CONFLICT\",\n    \"message\": \"This booking has already been reviewed.\",\n    \"data\": null,\n    \"meta\": {},\n    \"errors\": null\n}"
            },
            {
              "name": "Booking Not Completed Yet",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{lang}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/bookings/{{booking_id}}/review",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "bookings",
                    "{{booking_id}}",
                    "review"
                  ]
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"doctor_rating\": 5,\n  \"doctor_comment\": \"دكتور محترم وشرح كويس\",\n  \"clinic_rating\": 4,\n  \"clinic_comment\": \"العيادة نظيفة والانتظار كان قليل\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "description": "تقييم الحجز بعد اكتماله (تقييم دكتور + عيادة في نفس الطلب).\n\n| الحقل | النوع | القواعد |\n|---|---|---|\n| doctor_rating | integer | مطلوب، 1-5 |\n| doctor_comment | string | اختياري، أقصى 2000 حرف |\n| clinic_rating | integer | مطلوب، 1-5 |\n| clinic_comment | string | اختياري، أقصى 2000 حرف |\n\n**شروط:** الحجز بتاع المستخدم ده (وإلا 403)، حالته completed (وإلا 422)، ومفيش تقييم اتسجل قبل كده (وإلا 409 CONFLICT)."
              },
              "status": "Unprocessable Entity",
              "code": 422,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "cookie": [],
              "body": "{\n    \"success\": false,\n    \"code\": \"VALIDATION_ERROR\",\n    \"message\": \"البيانات المدخلة غير صحيحة\",\n    \"data\": null,\n    \"meta\": {},\n    \"errors\": {\n        \"doctor_rating\": [\n            \"لا يمكن تقييم حجز لم تكتمل زيارته بعد\"\n        ]\n    }\n}"
            }
          ]
        }
      ]
    },
    {
      "name": "05 - Patient Profile & Attachments",
      "description": "الملف الطبي، قائمة الأمراض/الأدوية، مرفقات المريض. كل المسارات هنا محمية. Controllers: PatientProfileController, MedicalHistoryOptionController, PatientAttachmentController.",
      "item": [
        {
          "name": "Medical History Options",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Accept-Language",
                "value": "{{lang}}"
              }
            ],
            "url": {
              "raw": "{{base_url}}/medical-history-options?type=condition",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "medical-history-options"
              ],
              "query": [
                {
                  "key": "type",
                  "value": "condition",
                  "description": "مطلوب: condition أو medication"
                }
              ]
            },
            "description": "قائمة الأمراض المزمنة (type=condition) أو الأدوية (type=medication) اللي بتتعرض كـ checkboxes في شاشة الملف الطبي. أي type تاني → 422 VALIDATION_ERROR."
          },
          "response": [
            {
              "name": "Success",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{lang}}"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/medical-history-options?type=condition",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "medical-history-options"
                  ],
                  "query": [
                    {
                      "key": "type",
                      "value": "condition",
                      "description": "مطلوب: condition أو medication"
                    }
                  ]
                },
                "description": "قائمة الأمراض المزمنة (type=condition) أو الأدوية (type=medication) اللي بتتعرض كـ checkboxes في شاشة الملف الطبي. أي type تاني → 422 VALIDATION_ERROR."
              },
              "status": "OK",
              "code": 200,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "cookie": [],
              "body": "{\n    \"success\": true,\n    \"code\": \"OK\",\n    \"message\": \"تمت العملية بنجاح\",\n    \"data\": [\n        {\n            \"id\": 1,\n            \"type\": \"condition\",\n            \"code\": \"hypertension\",\n            \"name\": \"ضغط الدم\"\n        },\n        {\n            \"id\": 2,\n            \"type\": \"condition\",\n            \"code\": \"diabetes\",\n            \"name\": \"السكري\"\n        }\n    ],\n    \"meta\": {},\n    \"errors\": null\n}"
            },
            {
              "name": "Validation Error - missing/invalid type",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{lang}}"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/medical-history-options?type=condition",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "medical-history-options"
                  ],
                  "query": [
                    {
                      "key": "type",
                      "value": "condition",
                      "description": "مطلوب: condition أو medication"
                    }
                  ]
                },
                "description": "قائمة الأمراض المزمنة (type=condition) أو الأدوية (type=medication) اللي بتتعرض كـ checkboxes في شاشة الملف الطبي. أي type تاني → 422 VALIDATION_ERROR."
              },
              "status": "Unprocessable Entity",
              "code": 422,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "cookie": [],
              "body": "{\n    \"success\": false,\n    \"code\": \"VALIDATION_ERROR\",\n    \"message\": \"البيانات المدخلة غير صحيحة\",\n    \"data\": null,\n    \"meta\": {},\n    \"errors\": {\n        \"type\": [\n            \"حقل type مطلوب ويجب أن يكون condition أو medication\"\n        ]\n    }\n}"
            }
          ]
        },
        {
          "name": "Get Medical Profile",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Accept-Language",
                "value": "{{lang}}"
              }
            ],
            "url": {
              "raw": "{{base_url}}/patient-profile/medical",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "patient-profile",
                "medical"
              ]
            },
            "description": "الملف الطبي الحالي. لو لسه متعملش، data بترجع {} (مفيش بيانات)."
          },
          "response": [
            {
              "name": "Success - profile exists",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{lang}}"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/patient-profile/medical",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "patient-profile",
                    "medical"
                  ]
                },
                "description": "الملف الطبي الحالي. لو لسه متعملش، data بترجع {} (مفيش بيانات)."
              },
              "status": "OK",
              "code": 200,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "cookie": [],
              "body": "{\n    \"success\": true,\n    \"code\": \"OK\",\n    \"message\": \"تمت العملية بنجاح\",\n    \"data\": {\n        \"date_of_birth\": \"1990-05-14\",\n        \"gender\": \"female\",\n        \"occupation\": \"Teacher\",\n        \"medical_history\": {\n            \"other\": null,\n            \"hypertension\": true,\n            \"diabetes\": false\n        },\n        \"surgical_history\": {\n            \"had_surgery\": false,\n            \"type\": null,\n            \"date\": null,\n            \"hospital\": null,\n            \"notes\": null\n        },\n        \"medication_history\": {\n            \"other\": null,\n            \"notes\": null\n        },\n        \"allergy_type\": null,\n        \"allergy_substance\": null,\n        \"allergy_severity\": null,\n        \"allergy_notes\": null\n    },\n    \"meta\": {},\n    \"errors\": null\n}"
            },
            {
              "name": "Success - no profile yet",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{lang}}"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/patient-profile/medical",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "patient-profile",
                    "medical"
                  ]
                },
                "description": "الملف الطبي الحالي. لو لسه متعملش، data بترجع {} (مفيش بيانات)."
              },
              "status": "OK",
              "code": 200,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "cookie": [],
              "body": "{\n    \"success\": true,\n    \"code\": \"OK\",\n    \"message\": \"تمت العملية بنجاح\",\n    \"data\": {},\n    \"meta\": {},\n    \"errors\": null\n}"
            }
          ]
        },
        {
          "name": "Update Medical Profile",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Accept-Language",
                "value": "{{lang}}"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/patient-profile/medical",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "patient-profile",
                "medical"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_of_birth\": \"1995-06-15\",\n  \"gender\": \"male\",\n  \"occupation\": \"Engineer\",\n  \"medical_history\": {\n    \"other\": \"Mild asthma\",\n    \"hypertension\": true,\n    \"diabetes\": false\n  },\n  \"surgical_history\": {\n    \"had_surgery\": true,\n    \"type\": \"Appendectomy\",\n    \"date\": \"2015-01-01\",\n    \"hospital\": \"City Hospital\",\n    \"notes\": null\n  },\n  \"medication_history\": {\n    \"other\": \"Vitamin D\",\n    \"notes\": null\n  },\n  \"allergy_type\": \"drug\",\n  \"allergy_substance\": \"Penicillin\",\n  \"allergy_severity\": \"moderate\",\n  \"allergy_notes\": null\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "description": "تحديث/إنشاء الملف الطبي — لازم يتعمل قبل أول حجز (وإلا 428 MEDICAL_PROFILE_REQUIRED عند الحجز).\n\n| الحقل | النوع | القواعد |\n|---|---|---|\n| date_of_birth | date | اختياري، قبل اليوم |\n| gender | string | اختياري، male أو female |\n| occupation | string | اختياري، أقصى 150 حرف |\n| medical_history.other | string | اختياري، أقصى 500 حرف |\n| medical_history.{code} | boolean | لكل خيار راجع من GET medical-history-options?type=condition (مثال: hypertension, diabetes) |\n| surgical_history.had_surgery | boolean | اختياري |\n| surgical_history.type/date/hospital/notes | مختلط | اختياري |\n| medication_history.other/notes | string | اختياري |\n| medication_history.{code} | boolean | لكل خيار راجع من GET medical-history-options?type=medication |\n| allergy_type | string | اختياري: drug, food, other |\n| allergy_substance | string | اختياري، أقصى 255 حرف |\n| allergy_severity | string | اختياري: mild, moderate, severe |\n| allergy_notes | string | اختياري، أقصى 1000 حرف |\n\n**ملاحظة:** أسماء الـ checkboxes (hypertension, diabetes, ...) لازم تتاخد أول حاجة من GET medical-history-options — دي أمثلة من الـ seed الحالي وممكن تختلف."
          },
          "response": [
            {
              "name": "Success",
              "originalRequest": {
                "method": "PUT",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{lang}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/patient-profile/medical",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "patient-profile",
                    "medical"
                  ]
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"date_of_birth\": \"1995-06-15\",\n  \"gender\": \"male\",\n  \"occupation\": \"Engineer\",\n  \"medical_history\": {\n    \"other\": \"Mild asthma\",\n    \"hypertension\": true,\n    \"diabetes\": false\n  },\n  \"surgical_history\": {\n    \"had_surgery\": true,\n    \"type\": \"Appendectomy\",\n    \"date\": \"2015-01-01\",\n    \"hospital\": \"City Hospital\",\n    \"notes\": null\n  },\n  \"medication_history\": {\n    \"other\": \"Vitamin D\",\n    \"notes\": null\n  },\n  \"allergy_type\": \"drug\",\n  \"allergy_substance\": \"Penicillin\",\n  \"allergy_severity\": \"moderate\",\n  \"allergy_notes\": null\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "description": "تحديث/إنشاء الملف الطبي — لازم يتعمل قبل أول حجز (وإلا 428 MEDICAL_PROFILE_REQUIRED عند الحجز).\n\n| الحقل | النوع | القواعد |\n|---|---|---|\n| date_of_birth | date | اختياري، قبل اليوم |\n| gender | string | اختياري، male أو female |\n| occupation | string | اختياري، أقصى 150 حرف |\n| medical_history.other | string | اختياري، أقصى 500 حرف |\n| medical_history.{code} | boolean | لكل خيار راجع من GET medical-history-options?type=condition (مثال: hypertension, diabetes) |\n| surgical_history.had_surgery | boolean | اختياري |\n| surgical_history.type/date/hospital/notes | مختلط | اختياري |\n| medication_history.other/notes | string | اختياري |\n| medication_history.{code} | boolean | لكل خيار راجع من GET medical-history-options?type=medication |\n| allergy_type | string | اختياري: drug, food, other |\n| allergy_substance | string | اختياري، أقصى 255 حرف |\n| allergy_severity | string | اختياري: mild, moderate, severe |\n| allergy_notes | string | اختياري، أقصى 1000 حرف |\n\n**ملاحظة:** أسماء الـ checkboxes (hypertension, diabetes, ...) لازم تتاخد أول حاجة من GET medical-history-options — دي أمثلة من الـ seed الحالي وممكن تختلف."
              },
              "status": "OK",
              "code": 200,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "cookie": [],
              "body": "{\n    \"success\": true,\n    \"code\": \"OK\",\n    \"message\": \"تمت العملية بنجاح\",\n    \"data\": {\n        \"date_of_birth\": \"1990-05-14\",\n        \"gender\": \"female\",\n        \"occupation\": \"Teacher\",\n        \"medical_history\": {\n            \"other\": null,\n            \"hypertension\": true,\n            \"diabetes\": false\n        },\n        \"surgical_history\": {\n            \"had_surgery\": false,\n            \"type\": null,\n            \"date\": null,\n            \"hospital\": null,\n            \"notes\": null\n        },\n        \"medication_history\": {\n            \"other\": null,\n            \"notes\": null\n        },\n        \"allergy_type\": \"drug\",\n        \"allergy_substance\": \"Penicillin\",\n        \"allergy_severity\": \"moderate\",\n        \"allergy_notes\": null\n    },\n    \"meta\": {},\n    \"errors\": null\n}"
            },
            {
              "name": "Validation Error",
              "originalRequest": {
                "method": "PUT",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{lang}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/patient-profile/medical",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "patient-profile",
                    "medical"
                  ]
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"date_of_birth\": \"1995-06-15\",\n  \"gender\": \"male\",\n  \"occupation\": \"Engineer\",\n  \"medical_history\": {\n    \"other\": \"Mild asthma\",\n    \"hypertension\": true,\n    \"diabetes\": false\n  },\n  \"surgical_history\": {\n    \"had_surgery\": true,\n    \"type\": \"Appendectomy\",\n    \"date\": \"2015-01-01\",\n    \"hospital\": \"City Hospital\",\n    \"notes\": null\n  },\n  \"medication_history\": {\n    \"other\": \"Vitamin D\",\n    \"notes\": null\n  },\n  \"allergy_type\": \"drug\",\n  \"allergy_substance\": \"Penicillin\",\n  \"allergy_severity\": \"moderate\",\n  \"allergy_notes\": null\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "description": "تحديث/إنشاء الملف الطبي — لازم يتعمل قبل أول حجز (وإلا 428 MEDICAL_PROFILE_REQUIRED عند الحجز).\n\n| الحقل | النوع | القواعد |\n|---|---|---|\n| date_of_birth | date | اختياري، قبل اليوم |\n| gender | string | اختياري، male أو female |\n| occupation | string | اختياري، أقصى 150 حرف |\n| medical_history.other | string | اختياري، أقصى 500 حرف |\n| medical_history.{code} | boolean | لكل خيار راجع من GET medical-history-options?type=condition (مثال: hypertension, diabetes) |\n| surgical_history.had_surgery | boolean | اختياري |\n| surgical_history.type/date/hospital/notes | مختلط | اختياري |\n| medication_history.other/notes | string | اختياري |\n| medication_history.{code} | boolean | لكل خيار راجع من GET medical-history-options?type=medication |\n| allergy_type | string | اختياري: drug, food, other |\n| allergy_substance | string | اختياري، أقصى 255 حرف |\n| allergy_severity | string | اختياري: mild, moderate, severe |\n| allergy_notes | string | اختياري، أقصى 1000 حرف |\n\n**ملاحظة:** أسماء الـ checkboxes (hypertension, diabetes, ...) لازم تتاخد أول حاجة من GET medical-history-options — دي أمثلة من الـ seed الحالي وممكن تختلف."
              },
              "status": "Unprocessable Entity",
              "code": 422,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "cookie": [],
              "body": "{\n    \"success\": false,\n    \"code\": \"VALIDATION_ERROR\",\n    \"message\": \"البيانات المدخلة غير صحيحة\",\n    \"data\": null,\n    \"meta\": {},\n    \"errors\": {\n        \"gender\": [\n            \"يجب أن يكون gender إما male أو female\"\n        ]\n    }\n}"
            }
          ]
        },
        {
          "name": "List Patient Attachments",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Accept-Language",
                "value": "{{lang}}"
              }
            ],
            "url": {
              "raw": "{{base_url}}/patient-attachments?category_id={{category_id}}&page=1",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "patient-attachments"
              ],
              "query": [
                {
                  "key": "category_id",
                  "value": "{{category_id}}",
                  "description": "اختياري"
                },
                {
                  "key": "page",
                  "value": "1"
                }
              ]
            },
            "description": "مرفقات المريض (تحاليل/تقارير قديمة)، مرقّمة (15/صفحة)."
          },
          "response": [
            {
              "name": "Success",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{lang}}"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/patient-attachments?category_id={{category_id}}&page=1",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "patient-attachments"
                  ],
                  "query": [
                    {
                      "key": "category_id",
                      "value": "{{category_id}}",
                      "description": "اختياري"
                    },
                    {
                      "key": "page",
                      "value": "1"
                    }
                  ]
                },
                "description": "مرفقات المريض (تحاليل/تقارير قديمة)، مرقّمة (15/صفحة)."
              },
              "status": "OK",
              "code": 200,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "cookie": [],
              "body": "{\n    \"success\": true,\n    \"code\": \"OK\",\n    \"message\": \"تمت العملية بنجاح\",\n    \"data\": [\n        {\n            \"id\": 4,\n            \"category\": null,\n            \"label\": \"Old lab result\",\n            \"file_url\": \"http://erp.local/uploads/clinic/patient-attachments/abc123.pdf\",\n            \"file_type\": \"file\",\n            \"created_at\": \"2026-09-11T00:49:46+03:00\"\n        }\n    ],\n    \"meta\": {\n        \"pagination\": {\n            \"current_page\": 1,\n            \"per_page\": 15,\n            \"total\": 1,\n            \"last_page\": 1\n        }\n    },\n    \"errors\": null\n}"
            }
          ]
        },
        {
          "name": "Upload Patient Attachment",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Accept-Language",
                "value": "{{lang}}"
              }
            ],
            "url": {
              "raw": "{{base_url}}/patient-attachments",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "patient-attachments"
              ]
            },
            "body": {
              "mode": "formdata",
              "formdata": [
                {
                  "key": "category_id",
                  "value": "",
                  "type": "text",
                  "description": "اختياري — رقم تصنيف من نوع attachment_category"
                },
                {
                  "key": "label",
                  "value": "Old lab result",
                  "type": "text",
                  "description": "اختياري، أقصى 255 حرف"
                },
                {
                  "key": "file",
                  "type": "file",
                  "src": [],
                  "description": "مطلوب — jpg/jpeg/png/webp/pdf/doc/docx، أقصى 10MB"
                }
              ]
            },
            "description": "رفع مرفق طبي جديد (ذاتي — المريض بيرفع لنفسه).\n\n| الحقل | النوع | القواعد |\n|---|---|---|\n| category_id | integer | اختياري، موجود في clinic_medical_history_options |\n| label | string | اختياري، أقصى 255 حرف |\n| file | file | مطلوب، jpg/jpeg/png/webp/pdf/doc/docx، أقصى 10MB |"
          },
          "response": [
            {
              "name": "Success",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{lang}}"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/patient-attachments",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "patient-attachments"
                  ]
                },
                "body": {
                  "mode": "formdata",
                  "formdata": [
                    {
                      "key": "category_id",
                      "value": "",
                      "type": "text",
                      "description": "اختياري — رقم تصنيف من نوع attachment_category"
                    },
                    {
                      "key": "label",
                      "value": "Old lab result",
                      "type": "text",
                      "description": "اختياري، أقصى 255 حرف"
                    },
                    {
                      "key": "file",
                      "type": "file",
                      "src": [],
                      "description": "مطلوب — jpg/jpeg/png/webp/pdf/doc/docx، أقصى 10MB"
                    }
                  ]
                },
                "description": "رفع مرفق طبي جديد (ذاتي — المريض بيرفع لنفسه).\n\n| الحقل | النوع | القواعد |\n|---|---|---|\n| category_id | integer | اختياري، موجود في clinic_medical_history_options |\n| label | string | اختياري، أقصى 255 حرف |\n| file | file | مطلوب، jpg/jpeg/png/webp/pdf/doc/docx، أقصى 10MB |"
              },
              "status": "Created",
              "code": 201,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "cookie": [],
              "body": "{\n    \"success\": true,\n    \"code\": \"CREATED\",\n    \"message\": \"تم الإنشاء بنجاح\",\n    \"data\": {\n        \"id\": 5,\n        \"category\": null,\n        \"label\": \"Blood Test Result\",\n        \"file_url\": \"http://erp.local/uploads/clinic/patient-attachments/def456.pdf\",\n        \"file_type\": \"file\",\n        \"created_at\": \"2026-09-20T10:00:00+03:00\"\n    },\n    \"meta\": {},\n    \"errors\": null\n}"
            },
            {
              "name": "Validation Error",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{lang}}"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/patient-attachments",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "patient-attachments"
                  ]
                },
                "body": {
                  "mode": "formdata",
                  "formdata": [
                    {
                      "key": "category_id",
                      "value": "",
                      "type": "text",
                      "description": "اختياري — رقم تصنيف من نوع attachment_category"
                    },
                    {
                      "key": "label",
                      "value": "Old lab result",
                      "type": "text",
                      "description": "اختياري، أقصى 255 حرف"
                    },
                    {
                      "key": "file",
                      "type": "file",
                      "src": [],
                      "description": "مطلوب — jpg/jpeg/png/webp/pdf/doc/docx، أقصى 10MB"
                    }
                  ]
                },
                "description": "رفع مرفق طبي جديد (ذاتي — المريض بيرفع لنفسه).\n\n| الحقل | النوع | القواعد |\n|---|---|---|\n| category_id | integer | اختياري، موجود في clinic_medical_history_options |\n| label | string | اختياري، أقصى 255 حرف |\n| file | file | مطلوب، jpg/jpeg/png/webp/pdf/doc/docx، أقصى 10MB |"
              },
              "status": "Unprocessable Entity",
              "code": 422,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "cookie": [],
              "body": "{\n    \"success\": false,\n    \"code\": \"VALIDATION_ERROR\",\n    \"message\": \"البيانات المدخلة غير صحيحة\",\n    \"data\": null,\n    \"meta\": {},\n    \"errors\": {\n        \"file\": [\n            \"يجب ألا يتجاوز حجم الملف 10 ميجابايت\"\n        ]\n    }\n}"
            }
          ]
        }
      ]
    },
    {
      "name": "06 - Medical Records",
      "description": "نتائج الزيارات (تشخيص/روشتة/تقرير) — قراءة فقط، بعد النشر. كل المسارات محمية. Controller: MedicalRecordController.",
      "item": [
        {
          "name": "My Medical Records",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Accept-Language",
                "value": "{{lang}}"
              }
            ],
            "url": {
              "raw": "{{base_url}}/medical-records/mine?page=1",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "medical-records",
                "mine"
              ],
              "query": [
                {
                  "key": "page",
                  "value": "1"
                }
              ]
            },
            "description": "سجلات المريض المنشورة فقط، الأحدث أولًا (10/صفحة)."
          },
          "response": [
            {
              "name": "Success",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{lang}}"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/medical-records/mine?page=1",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "medical-records",
                    "mine"
                  ],
                  "query": [
                    {
                      "key": "page",
                      "value": "1"
                    }
                  ]
                },
                "description": "سجلات المريض المنشورة فقط، الأحدث أولًا (10/صفحة)."
              },
              "status": "OK",
              "code": 200,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "cookie": [],
              "body": "{\n    \"success\": true,\n    \"code\": \"OK\",\n    \"message\": \"تمت العملية بنجاح\",\n    \"data\": [\n        {\n            \"id\": 1,\n            \"diagnosis\": \"Seasonal flu with mild dehydration.\",\n            \"prescription\": \"Paracetamol 500mg every 8 hours for 5 days, oral rehydration salts.\",\n            \"report\": \"Patient presented with fever and fatigue. Vitals stable. Advised rest and follow-up if symptoms persist beyond a week.\",\n            \"attachment_url\": null,\n            \"published_at\": \"2026-08-25T17:22:26+03:00\",\n            \"last_edited_at\": null,\n            \"doctor\": {\n                \"id\": 1,\n                \"name\": \"Dr. Ahmed Hassan\",\n                \"specialty\": \"الباطنة\"\n            },\n            \"booking\": {\n                \"id\": 1,\n                \"scheduled_at\": \"2026-08-25T15:22:26+03:00\",\n                \"branch\": \"Wellness Care Clinic\"\n            }\n        }\n    ],\n    \"meta\": {\n        \"pagination\": {\n            \"current_page\": 1,\n            \"per_page\": 10,\n            \"total\": 1,\n            \"last_page\": 1\n        }\n    },\n    \"errors\": null\n}"
            }
          ]
        },
        {
          "name": "Medical Record Detail",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Accept-Language",
                "value": "{{lang}}"
              }
            ],
            "url": {
              "raw": "{{base_url}}/medical-records/{{record_id}}",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "medical-records",
                "{{record_id}}"
              ]
            },
            "description": "لو السجل مش بتاع المستخدم ده → 403. لو مش منشور بعد → 404."
          },
          "response": [
            {
              "name": "Success",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{lang}}"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/medical-records/{{record_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "medical-records",
                    "{{record_id}}"
                  ]
                },
                "description": "لو السجل مش بتاع المستخدم ده → 403. لو مش منشور بعد → 404."
              },
              "status": "OK",
              "code": 200,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "cookie": [],
              "body": "{\n    \"success\": true,\n    \"code\": \"OK\",\n    \"message\": \"تمت العملية بنجاح\",\n    \"data\": {\n        \"id\": 1,\n        \"diagnosis\": \"Seasonal flu with mild dehydration.\",\n        \"prescription\": \"Paracetamol 500mg every 8 hours for 5 days, oral rehydration salts.\",\n        \"report\": \"Patient presented with fever and fatigue. Vitals stable. Advised rest and follow-up if symptoms persist beyond a week.\",\n        \"attachment_url\": null,\n        \"published_at\": \"2026-08-25T17:22:26+03:00\",\n        \"last_edited_at\": null,\n        \"doctor\": {\n            \"id\": 1,\n            \"name\": \"Dr. Ahmed Hassan\",\n            \"specialty\": \"الباطنة\"\n        },\n        \"booking\": {\n            \"id\": 1,\n            \"scheduled_at\": \"2026-08-25T15:22:26+03:00\",\n            \"branch\": \"Wellness Care Clinic\"\n        }\n    },\n    \"meta\": {},\n    \"errors\": null\n}"
            },
            {
              "name": "Forbidden - not your record",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{lang}}"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/medical-records/{{record_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "medical-records",
                    "{{record_id}}"
                  ]
                },
                "description": "لو السجل مش بتاع المستخدم ده → 403. لو مش منشور بعد → 404."
              },
              "status": "Forbidden",
              "code": 403,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "cookie": [],
              "body": "{\n    \"success\": false,\n    \"code\": \"FORBIDDEN\",\n    \"message\": \"غير مصرح لك بتنفيذ هذا الإجراء\",\n    \"data\": null,\n    \"meta\": {},\n    \"errors\": null\n}"
            },
            {
              "name": "Not Found - not published yet",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{lang}}"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/medical-records/{{record_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "medical-records",
                    "{{record_id}}"
                  ]
                },
                "description": "لو السجل مش بتاع المستخدم ده → 403. لو مش منشور بعد → 404."
              },
              "status": "Not Found",
              "code": 404,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "cookie": [],
              "body": "{\n    \"success\": false,\n    \"code\": \"NOT_FOUND\",\n    \"message\": \"العنصر المطلوب غير موجود\",\n    \"data\": null,\n    \"meta\": {},\n    \"errors\": null\n}"
            }
          ]
        }
      ]
    },
    {
      "name": "07 - Chat (نص ومرفقات فقط)",
      "description": "محادثة نصية بين المريض والدكتور — بدون فيديو. كل المسارات محمية. Controller: ChatController.",
      "item": [
        {
          "name": "Get Thread",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Accept-Language",
                "value": "{{lang}}"
              }
            ],
            "url": {
              "raw": "{{base_url}}/chat/doctors/{{doctor_id}}/messages?page=1",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "chat",
                "doctors",
                "{{doctor_id}}",
                "messages"
              ],
              "query": [
                {
                  "key": "page",
                  "value": "1"
                }
              ]
            },
            "description": "كل رسائل المحادثة مع دكتور معيّن، بالترتيب الزمني. الطلب ده بيعلّم رسائل الدكتور كمقروءة تلقائيًا."
          },
          "response": [
            {
              "name": "Success",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{lang}}"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/chat/doctors/{{doctor_id}}/messages?page=1",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "chat",
                    "doctors",
                    "{{doctor_id}}",
                    "messages"
                  ],
                  "query": [
                    {
                      "key": "page",
                      "value": "1"
                    }
                  ]
                },
                "description": "كل رسائل المحادثة مع دكتور معيّن، بالترتيب الزمني. الطلب ده بيعلّم رسائل الدكتور كمقروءة تلقائيًا."
              },
              "status": "OK",
              "code": 200,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "cookie": [],
              "body": "{\n    \"success\": true,\n    \"code\": \"OK\",\n    \"message\": \"تمت العملية بنجاح\",\n    \"data\": [\n        {\n            \"id\": 1,\n            \"sender_type\": \"patient\",\n            \"body\": \"Doctor, is it okay to take the medicine on an empty stomach?\",\n            \"attachment_url\": null,\n            \"attachment_type\": null,\n            \"read_at\": \"2026-08-26T15:22:26+03:00\",\n            \"created_at\": \"2026-09-04T15:22:26+03:00\"\n        },\n        {\n            \"id\": 2,\n            \"sender_type\": \"doctor\",\n            \"body\": \"Better to take it after a meal to avoid stomach irritation.\",\n            \"attachment_url\": null,\n            \"attachment_type\": null,\n            \"read_at\": \"2026-08-26T15:22:26+03:00\",\n            \"created_at\": \"2026-09-04T15:22:26+03:00\"\n        }\n    ],\n    \"meta\": {},\n    \"errors\": null\n}"
            },
            {
              "name": "Not Found - doctor inactive",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{lang}}"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/chat/doctors/{{doctor_id}}/messages?page=1",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "chat",
                    "doctors",
                    "{{doctor_id}}",
                    "messages"
                  ],
                  "query": [
                    {
                      "key": "page",
                      "value": "1"
                    }
                  ]
                },
                "description": "كل رسائل المحادثة مع دكتور معيّن، بالترتيب الزمني. الطلب ده بيعلّم رسائل الدكتور كمقروءة تلقائيًا."
              },
              "status": "Not Found",
              "code": 404,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "cookie": [],
              "body": "{\n    \"success\": false,\n    \"code\": \"NOT_FOUND\",\n    \"message\": \"العنصر المطلوب غير موجود\",\n    \"data\": null,\n    \"meta\": {},\n    \"errors\": null\n}"
            }
          ]
        },
        {
          "name": "Send Message",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Accept-Language",
                "value": "{{lang}}"
              }
            ],
            "url": {
              "raw": "{{base_url}}/chat/doctors/{{doctor_id}}/messages",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "chat",
                "doctors",
                "{{doctor_id}}",
                "messages"
              ]
            },
            "body": {
              "mode": "formdata",
              "formdata": [
                {
                  "key": "body",
                  "value": "Hello doctor, I have a question about my medication",
                  "type": "text",
                  "description": "مطلوب لو مفيش attachment، أقصى 5000 حرف"
                },
                {
                  "key": "attachment",
                  "type": "file",
                  "src": [],
                  "description": "اختياري — jpg/jpeg/png/webp/pdf/doc/docx، أقصى 10MB"
                }
              ]
            },
            "description": "إرسال رسالة (نص و/أو مرفق) للدكتور.\n\n| الحقل | النوع | القواعد |\n|---|---|---|\n| body | string | مطلوب لو مفيش attachment، أقصى 5000 حرف |\n| attachment | file | اختياري، jpg/jpeg/png/webp/pdf/doc/docx، أقصى 10MB |\n\nلو الدكتور غير نشط → 404."
          },
          "response": [
            {
              "name": "Success",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{lang}}"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/chat/doctors/{{doctor_id}}/messages",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "chat",
                    "doctors",
                    "{{doctor_id}}",
                    "messages"
                  ]
                },
                "body": {
                  "mode": "formdata",
                  "formdata": [
                    {
                      "key": "body",
                      "value": "Hello doctor, I have a question about my medication",
                      "type": "text",
                      "description": "مطلوب لو مفيش attachment، أقصى 5000 حرف"
                    },
                    {
                      "key": "attachment",
                      "type": "file",
                      "src": [],
                      "description": "اختياري — jpg/jpeg/png/webp/pdf/doc/docx، أقصى 10MB"
                    }
                  ]
                },
                "description": "إرسال رسالة (نص و/أو مرفق) للدكتور.\n\n| الحقل | النوع | القواعد |\n|---|---|---|\n| body | string | مطلوب لو مفيش attachment، أقصى 5000 حرف |\n| attachment | file | اختياري، jpg/jpeg/png/webp/pdf/doc/docx، أقصى 10MB |\n\nلو الدكتور غير نشط → 404."
              },
              "status": "Created",
              "code": 201,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "cookie": [],
              "body": "{\n    \"success\": true,\n    \"code\": \"CREATED\",\n    \"message\": \"تم الإنشاء بنجاح\",\n    \"data\": {\n        \"id\": 3,\n        \"sender_type\": \"patient\",\n        \"body\": \"Hello doctor, quick question about my meds\",\n        \"attachment_url\": null,\n        \"attachment_type\": null,\n        \"read_at\": null,\n        \"created_at\": \"2026-09-11T00:57:24+03:00\"\n    },\n    \"meta\": {},\n    \"errors\": null\n}"
            },
            {
              "name": "Validation Error - body or attachment required",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{lang}}"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/chat/doctors/{{doctor_id}}/messages",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "chat",
                    "doctors",
                    "{{doctor_id}}",
                    "messages"
                  ]
                },
                "body": {
                  "mode": "formdata",
                  "formdata": [
                    {
                      "key": "body",
                      "value": "Hello doctor, I have a question about my medication",
                      "type": "text",
                      "description": "مطلوب لو مفيش attachment، أقصى 5000 حرف"
                    },
                    {
                      "key": "attachment",
                      "type": "file",
                      "src": [],
                      "description": "اختياري — jpg/jpeg/png/webp/pdf/doc/docx، أقصى 10MB"
                    }
                  ]
                },
                "description": "إرسال رسالة (نص و/أو مرفق) للدكتور.\n\n| الحقل | النوع | القواعد |\n|---|---|---|\n| body | string | مطلوب لو مفيش attachment، أقصى 5000 حرف |\n| attachment | file | اختياري، jpg/jpeg/png/webp/pdf/doc/docx، أقصى 10MB |\n\nلو الدكتور غير نشط → 404."
              },
              "status": "Unprocessable Entity",
              "code": 422,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "cookie": [],
              "body": "{\n    \"success\": false,\n    \"code\": \"VALIDATION_ERROR\",\n    \"message\": \"البيانات المدخلة غير صحيحة\",\n    \"data\": null,\n    \"meta\": {},\n    \"errors\": {\n        \"body\": [\n            \"يجب إرسال نص الرسالة أو مرفق\"\n        ]\n    }\n}"
            }
          ]
        },
        {
          "name": "Unread Count",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Accept-Language",
                "value": "{{lang}}"
              }
            ],
            "url": {
              "raw": "{{base_url}}/chat/unread-count",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "chat",
                "unread-count"
              ]
            },
            "description": "عدد رسائل الدكاترة غير المقروءة عبر كل المحادثات — لشارة (badge) الشاشة الرئيسية."
          },
          "response": [
            {
              "name": "Success",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{lang}}"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/chat/unread-count",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "chat",
                    "unread-count"
                  ]
                },
                "description": "عدد رسائل الدكاترة غير المقروءة عبر كل المحادثات — لشارة (badge) الشاشة الرئيسية."
              },
              "status": "OK",
              "code": 200,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "cookie": [],
              "body": "{\n    \"success\": true,\n    \"code\": \"OK\",\n    \"message\": \"تمت العملية بنجاح\",\n    \"data\": {\n        \"count\": 2\n    },\n    \"meta\": {},\n    \"errors\": null\n}"
            }
          ]
        }
      ]
    },
    {
      "name": "08 - Offers",
      "description": "العروض الترويجية النشطة. مسار عام. Controller: OfferController.",
      "item": [
        {
          "name": "Active Offers",
          "request": {
            "auth": {
              "type": "noauth"
            },
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Accept-Language",
                "value": "{{lang}}"
              }
            ],
            "url": {
              "raw": "{{base_url}}/offers/active?branch_id={{branch_id}}&specialty_id={{specialty_id}}",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "offers",
                "active"
              ],
              "query": [
                {
                  "key": "branch_id",
                  "value": "{{branch_id}}",
                  "description": "اختياري"
                },
                {
                  "key": "specialty_id",
                  "value": "{{specialty_id}}",
                  "description": "اختياري"
                }
              ]
            },
            "description": "العروض النشطة وضمن نافذة التاريخ الحالية، مع فلترة اختيارية بالفرع/التخصص."
          },
          "response": [
            {
              "name": "Success",
              "originalRequest": {
                "auth": {
                  "type": "noauth"
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{lang}}"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/offers/active?branch_id={{branch_id}}&specialty_id={{specialty_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "offers",
                    "active"
                  ],
                  "query": [
                    {
                      "key": "branch_id",
                      "value": "{{branch_id}}",
                      "description": "اختياري"
                    },
                    {
                      "key": "specialty_id",
                      "value": "{{specialty_id}}",
                      "description": "اختياري"
                    }
                  ]
                },
                "description": "العروض النشطة وضمن نافذة التاريخ الحالية، مع فلترة اختيارية بالفرع/التخصص."
              },
              "status": "OK",
              "code": 200,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "cookie": [],
              "body": "{\n    \"success\": true,\n    \"code\": \"OK\",\n    \"message\": \"تمت العملية بنجاح\",\n    \"data\": [\n        {\n            \"id\": 1,\n            \"title\": \"Grand Opening Discount\",\n            \"description\": \"15% off any consultation or visit for new patients this month.\",\n            \"discount_type\": \"percentage\",\n            \"discount_value\": 15,\n            \"starts_at\": \"2026-09-01T15:22:26+03:00\",\n            \"ends_at\": \"2026-10-04T15:22:26+03:00\"\n        }\n    ],\n    \"meta\": {},\n    \"errors\": null\n}"
            }
          ]
        }
      ]
    },
    {
      "name": "09 - Notifications",
      "description": "إشعارات المستخدم. كل المسارات محمية. Controller: NotificationController.",
      "item": [
        {
          "name": "Register Push Device",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Accept-Language",
                "value": "{{lang}}"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n    \"token\": \"<FCM registration token>\",\n    \"platform\": \"android\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "url": {
              "raw": "{{base_url}}/devices",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "devices"
              ]
            },
            "description": "سجّل رمز Firebase (FCM) للجهاز بعد تسجيل الدخول وكلما غيّر Firebase الرمز (onTokenRefresh). platform: android | ios | web. لغة الإشعارات (SMS/واتساب/Push) تُحفظ من Accept-Language.\n\nPush payload الذي يصل للتطبيق:\nnotification: {title, body}\ndata: {type: booking_created | booking_confirmed | booking_cancelled | booking_rescheduled | appointment_reminder, booking_id, url}\nاستخدم data.type و data.booking_id لفتح شاشة الحجز."
          },
          "response": [
            {
              "name": "Success",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{lang}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n    \"token\": \"<FCM registration token>\",\n    \"platform\": \"android\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/devices",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "devices"
                  ]
                },
                "description": "سجّل رمز Firebase (FCM) للجهاز بعد تسجيل الدخول وكلما غيّر Firebase الرمز (onTokenRefresh). platform: android | ios | web. لغة الإشعارات (SMS/واتساب/Push) تُحفظ من Accept-Language.\n\nPush payload الذي يصل للتطبيق:\nnotification: {title, body}\ndata: {type: booking_created | booking_confirmed | booking_cancelled | booking_rescheduled | appointment_reminder, booking_id, url}\nاستخدم data.type و data.booking_id لفتح شاشة الحجز."
              },
              "status": "OK",
              "code": 200,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "cookie": [],
              "body": "{\n    \"success\": true,\n    \"code\": \"OK\",\n    \"message\": \"تمت العملية بنجاح\",\n    \"data\": {\n        \"id\": 12,\n        \"platform\": \"android\",\n        \"locale\": \"ar\"\n    }\n}"
            }
          ]
        },
        {
          "name": "Unregister Push Device",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Accept-Language",
                "value": "{{lang}}"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n    \"token\": \"<FCM registration token>\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "url": {
              "raw": "{{base_url}}/devices",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "devices"
              ]
            },
            "description": "أوقف الإشعارات على هذا الجهاز. يحدث تلقائياً أيضاً عند إرسال deviceToken مع Logout، وكل الأجهزة تُحذف مع Logout All."
          },
          "response": [
            {
              "name": "Success",
              "originalRequest": {
                "method": "DELETE",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{lang}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n    \"token\": \"<FCM registration token>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/devices",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "devices"
                  ]
                },
                "description": "أوقف الإشعارات على هذا الجهاز. يحدث تلقائياً أيضاً عند إرسال deviceToken مع Logout، وكل الأجهزة تُحذف مع Logout All."
              },
              "status": "OK",
              "code": 200,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "cookie": [],
              "body": "{\n    \"success\": true,\n    \"code\": \"OK\",\n    \"message\": \"تمت العملية بنجاح\",\n    \"data\": null\n}"
            }
          ]
        },
        {
          "name": "List Notifications",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Accept-Language",
                "value": "{{lang}}"
              }
            ],
            "url": {
              "raw": "{{base_url}}/notifications?page=1",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "notifications"
              ],
              "query": [
                {
                  "key": "page",
                  "value": "1"
                }
              ]
            },
            "description": "كل إشعارات المستخدم، الأحدث أولًا (20/صفحة)."
          },
          "response": [
            {
              "name": "Success",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{lang}}"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/notifications?page=1",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "notifications"
                  ],
                  "query": [
                    {
                      "key": "page",
                      "value": "1"
                    }
                  ]
                },
                "description": "كل إشعارات المستخدم، الأحدث أولًا (20/صفحة)."
              },
              "status": "OK",
              "code": 200,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "cookie": [],
              "body": "{\n    \"success\": true,\n    \"code\": \"OK\",\n    \"message\": \"تمت العملية بنجاح\",\n    \"data\": [\n        {\n            \"id\": \"a5909632-ab49-4a51-909f-80c5dab0e46f\",\n            \"type\": \"clinic.chat.message\",\n            \"title\": \"رسالة جديدة\",\n            \"message\": \"لديك رسالة جديدة من د. أحمد\",\n            \"url\": null,\n            \"read_at\": null,\n            \"created_at\": \"2026-09-11T00:59:47+03:00\"\n        }\n    ],\n    \"meta\": {\n        \"pagination\": {\n            \"current_page\": 1,\n            \"per_page\": 20,\n            \"total\": 1,\n            \"last_page\": 1\n        }\n    },\n    \"errors\": null\n}"
            }
          ]
        },
        {
          "name": "Unread Count",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Accept-Language",
                "value": "{{lang}}"
              }
            ],
            "url": {
              "raw": "{{base_url}}/notifications/unread-count",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "notifications",
                "unread-count"
              ]
            },
            "description": "عدد الإشعارات غير المقروءة."
          },
          "response": [
            {
              "name": "Success",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{lang}}"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/notifications/unread-count",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "notifications",
                    "unread-count"
                  ]
                },
                "description": "عدد الإشعارات غير المقروءة."
              },
              "status": "OK",
              "code": 200,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "cookie": [],
              "body": "{\n    \"success\": true,\n    \"code\": \"OK\",\n    \"message\": \"تمت العملية بنجاح\",\n    \"data\": {\n        \"count\": 1\n    },\n    \"meta\": {},\n    \"errors\": null\n}"
            }
          ]
        },
        {
          "name": "Mark One As Read",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Accept-Language",
                "value": "{{lang}}"
              }
            ],
            "url": {
              "raw": "{{base_url}}/notifications/{{notification_id}}/read",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "notifications",
                "{{notification_id}}",
                "read"
              ]
            },
            "description": "تعليم إشعار واحد كمقروء. {{notification_id}} لازم يتحط من نتيجة List Notifications (UUID). لو مش بتاع المستخدم ده → 404."
          },
          "response": [
            {
              "name": "Success",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{lang}}"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/notifications/{{notification_id}}/read",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "notifications",
                    "{{notification_id}}",
                    "read"
                  ]
                },
                "description": "تعليم إشعار واحد كمقروء. {{notification_id}} لازم يتحط من نتيجة List Notifications (UUID). لو مش بتاع المستخدم ده → 404."
              },
              "status": "OK",
              "code": 200,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "cookie": [],
              "body": "{\n    \"success\": true,\n    \"code\": \"OK\",\n    \"message\": \"تمت العملية بنجاح\",\n    \"data\": {\n        \"id\": \"a5909632-ab49-4a51-909f-80c5dab0e46f\",\n        \"type\": \"clinic.chat.message\",\n        \"title\": \"رسالة جديدة\",\n        \"message\": \"لديك رسالة جديدة من د. أحمد\",\n        \"url\": null,\n        \"read_at\": \"2026-09-20T10:05:00+03:00\",\n        \"created_at\": \"2026-09-11T00:59:47+03:00\"\n    },\n    \"meta\": {},\n    \"errors\": null\n}"
            },
            {
              "name": "Not Found - not your notification",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{lang}}"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/notifications/{{notification_id}}/read",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "notifications",
                    "{{notification_id}}",
                    "read"
                  ]
                },
                "description": "تعليم إشعار واحد كمقروء. {{notification_id}} لازم يتحط من نتيجة List Notifications (UUID). لو مش بتاع المستخدم ده → 404."
              },
              "status": "Not Found",
              "code": 404,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "cookie": [],
              "body": "{\n    \"success\": false,\n    \"code\": \"NOT_FOUND\",\n    \"message\": \"العنصر المطلوب غير موجود\",\n    \"data\": null,\n    \"meta\": {},\n    \"errors\": null\n}"
            }
          ]
        },
        {
          "name": "Mark All As Read",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Accept-Language",
                "value": "{{lang}}"
              }
            ],
            "url": {
              "raw": "{{base_url}}/notifications/read-all",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "notifications",
                "read-all"
              ]
            },
            "description": "تعليم كل الإشعارات كمقروءة — بيرجع 204 NO_CONTENT من غير body."
          },
          "response": [
            {
              "name": "Success - No Content",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{lang}}"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/notifications/read-all",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "notifications",
                    "read-all"
                  ]
                },
                "description": "تعليم كل الإشعارات كمقروءة — بيرجع 204 NO_CONTENT من غير body."
              },
              "status": "No Content",
              "code": 204,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "cookie": [],
              "body": ""
            }
          ]
        }
      ]
    }
  ]
}
