POST /v2/core/offices/list Core Offices List این اندپوینت لیست کامل دفاتر (Offices) سیستم را از جدول offices بازیابی کرده و برای استفاده در پنل‌های مدیریتی Core Center برگشت می‌دهد. دسترسی به این اندپوینت کاملاً ویژه است و فقط کاربرانی که Branch آن‌ها دقیقاً مقدار "[0]" باشد می‌توانند وارد شوند. Request Overview URL: /v2/core/offices/list Method: POST Controller: CoreController@officesList Middleware Stack: authWithJwt → core Authentication لازم است هدر زیر حتماً ارسال شود: Authorization: Bearer میدلور AuthWithJWT موارد زیر را احراز می‌کند: توکن وجود داشته باشد توکن با HS256 و کلید env('JWT_SECRET_KEY') معتبر باشد UUID در توکن وجود داشته باشد کاربر در جدول مربوط به typ (operators / customers / colleague_auth) یافت شود وضعیت کاربر status = 1 باشد سپس میدلور group, level, operator را به درخواست اضافه می‌کند. Authorization (Core Access) میدلور CoreAccess سطح دسترسی را کنترل می‌کند. Condition Allow? $request->get('operator')->branch == "[0]" ✔ Access Granted Anything Else ✘ Access Denied در صورت عدم دسترسی خروجی زیر برگردانده می‌شود: { "status": false, "time": 1710000000, "error": { "code": 5005, "message": "Access to the [core center] requires special access." }, "support": { "phone": "021-91016838 in 121", "email": "ict@airplus.app", "panel": "helpdesk.airplus.app" } } Body Parameters این اندپوینت هیچ پارامتر ورودی ندارد. Field Type Required Description No body parameters Response (Success) خروجی شامل تمام رکوردهای جدول offices است. Field Type Description status boolean همیشه true در حالت موفق time integer UNIX timestamp data array[object] نتیجه خام DB::table('offices')->get() { "status": true, "time": 1710000000, "data": [ { "id": 1, "title_fa": "دفتر مرکزی", "brand_fa": "ایرپلاس", "city": "تهران", "status": 1, ... }, ... ] } Response (JWT Error) نمونه خروجی اگر توکن ارسال نشود: { "status": false, "time": 1710000000, "error": { "code": 1005, "message": "Token not provided!" }, "support": { ... } } Process Flow Check Bearer Token ↓ Decode JWT (HS256) ↓ Load User From Table (operators/customers/colleague) ↓ Check user.status == 1 ↓ CoreAccess → Check operator.branch == "[0]" ↓ Query DB: offices table ↓ Return JSON Response