Skip to main content
#P1776

GET /v2/config


Initial System Configuration

این متد نقطه شروع (Entry Point) اپلیکیشن است. فرانت‌اند قبل از هر کاری باید این اندپوینت را صدا بزند.
سیستم با بررسی هدر Domain، شعبه (Office) مورد نظر را پیدا کرده و تمام تنظیمات حیاتی شامل رنگ‌بندی، لوگو، اطلاعات تماس، قوانین مالی و وضعیت بدهی را برمی‌گرداند.




Get Tenant Config

URL: /v2/config
Method: GET
Controller: V2BaseController@config
Auth: Public (نیاز به توکن ندارد)

Headers (الزامی)

Header Name Description
Domain آدرس دامنه‌ای که کاربر با آن سایت را باز کرده است.
مثال: crm.travel-agency.com یا localhost:3000
سیستم به صورت خودکار www. و پورت را حذف می‌کند.

Response Structure

Field Block Description
office_id شناسه واقعی شعبه + 1000 (جهت امنیت و عدم نمایش ID اصلی).
design تنظیمات UI/UX:
  • theme/style/base_color: برای تنظیم متغیرهای CSS.
  • logo/favicon: لینک فایل‌ها.
  • login_text: متن خوش‌آمدگویی صفحه لاگین.
details.financial_debt مهم: (Boolean)
اگر true باشد، یعنی شعبه فاکتور پرداخت نشده "پشتیبانی" (Support Bill) دارد و دسترسی باید محدود شود.
details.official قوانین هاردکد شده (Hardcoded) مربوط به سیستم حضور و غیاب:
  • leave: قوانین کسر اضافه کار و جایگزین برای مرخصی‌ها.
  • license: قوانین مربوط به مرخصی ساعتی/مجوزها.
details.config تنظیمات داینامیک تعریف شده در جدول office_config.
خروجی به صورت Key-Value است (مثلاً allow_negative_stock: "1").

Example Response

{
    "office_id": 1005,
    "title": {
        "fa": "آژانس مسافرتی آسمان",
        "en": "Aseman Travel Agency"
    },
    "brand": {
        "fa": "آسمان",
        "en": "Aseman"
    },
    "short_domain": "aseman",
    "expiration": "2025-12-29",
    "communicational": {
        "phone": "021-44444444",
        "mobile": "09121234567",
        "address": {
            "fa": "تهران، میدان آزادی...",
            "en": "Tehran, Azadi Sq..."
        },
        "location": "35.6892,51.3890"
    },
    "design": {
        "login_text": "به سیستم اتوماسیون خوش آمدید",
        "logo": "https://storage.../logo.png",
        "base_color": "#ff5722",
        "theme": "dark"
    },
    "support_online": {
        "service": "raychat",
        "code": "e45-fgh-789"
    },
    "details": {
        "financial_debt": false,
        "financial": {
            "value_added": 9
        },
        "official": {
            "calendar_limit": {
                "leave": {
                    "1": { "overtime": -60, "substitute": true },
                    "2": { "overtime": -60, "substitute": false }
                }
            }
        },
        "config": {
            "print_header": "1",
            "currency_default": "IRR"
        }
    }
}

Logic Flow

Request (Header: Domain)
Domain Parsing
Remove 'www.', Remove Port
Extract Base Domain
Exists in DB?
(table: offices)
No ↙
400 Bad Request
"The office is not defined"
Yes ↘
Load Data
1. Configs (office_config)
2. VAT (accounting_titles)
3. Debt Check (airplus_bills)
4. Redis Cache Update
Return JSON Config