#P1774
POST /v2/base/reference
Base System References
این اندپوینت دقیقاً همان موتور جستجوی مرکزی (Global Search) است که در ماژول Trade استفاده میشد، اما با آدرس base برای استفادههای عمومی در کل سیستم (مانند فرمهای تنظیمات، داشبورد و غیره) در دسترس قرار گرفته است.
وظیفه آن تبدیل کدهای موجودیت (Goals) به لیستهای استاندارد برای Dropdownها است.
General Reference Lookup
جستجوی تمامی موجودیتهای پایه سیستم (کاربران، شیفتها، دپارتمانها، حسابها و...) برای استفاده در کامپوننتهای Select2.
URL:
/v2/base/referenceMethod: POST
Controller: BaseController@tradeReferenceType
Middleware: authWithJwt
Request Parameters
| Parameter | Type | Description |
|---|---|---|
| goal | String/Array | (الزامی) شناسه نوع داده مورد نیاز. (لیست کامل در جدول پایین). |
| q | String | (اختیاری) عبارت متنی یا عددی برای جستجو. |
| branch | Integer | (الزامی) شناسه شعبه فعال. |
| separator | Boolean | (اختیاری) افزودن پیشوند متنی به ID خروجی (مثلاً office-1). |
| details | Boolean | (اختیاری) برای برخی موجودیتها مثل shift_works جزئیات کامل رکورد را در خروجی برمیگرداند. |
Reference Codes (Goal Dictionary)
| Code | Entity | Notes |
|---|---|---|
| 1000 | حسابهای حسابداری | فیلتر بر اساس extra['type_pay'] (نقد، بانک، چک). |
| 1300 | پرسنل | کاربران سیستم. دسترسی محدود به سطح دسترسی اپراتور. |
| 1500 | تنخواهگردان | کاربران دارای فیلد imprest. |
| 1600 | اعلامیهها | جستجو در عنوان و شرکت صادرکننده. |
| 2000 | بانکها | لیست بانکهای تعریف شده (بجز نوع داخلی). |
| 5000 | فاکتور/رفرنس | جستجو در سریال فاکتور یا نام مشتری. |
| 8000/8100 | همکاران | تامینکنندگان (Suppliers). |
| 9000 | مشتریان/مسافرین | جستجو در نام فارسی و انگلیسی. |
| office | دفاتر/شعب | لیست دفاتر فعال (`offices`). |
| gateways | درگاههای پرداخت | درگاههای متصل به شعبه (`gateways`). |
| shift_works | شیفتهای کاری | لیست شیفتها. اگر details=true باشد، کل آبجکت برمیگردد. |
| office_departments | دپارتمانها | لیست دپارتمانهای شعبه (فروش، مالی و...). |
| status | وضعیتها | لیست استاتیک (پایان یافته، در حال بررسی، ...). |
Example Request (Shift Works)
{
"goal": "shift_works",
"branch": 1,
"details": true
}
Success Response
{
"total_count": 5,
"incomplete_results": false,
"results": [
{
"id": 1,
"text": "شیفت صبح",
"query": {
"id": 1,
"title": "شیفت صبح",
"start_time": "08:00",
"end_time": "16:00"
}
}
],
"pagination": {
"more": false
}
}
Technical Logic Flow
Request: Goal + Query
↓
Switch Case (Goal)
Select Table (User, Account, Office...)
Select Table (User, Account, Office...)
↓
Apply Filters
(Branch check, Search 'q', Extra params)
(Branch check, Search 'q', Extra params)
↓
Format Output
{ id: ..., text: ... }
{ id: ..., text: ... }