# GET /v2/config

<div class="api-docs" id="bkmrk-">  <div class="endpoint-section">  
</div></div>## Initial System Configuration

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

<div class="api-docs" id="bkmrk--1"><div class="endpoint-section">  
</div>  
---

  </div># Get Tenant Config

<div class="api-docs" id="bkmrk-url%3A-%2Fv2%2Fconfig-meth"><div class="endpoint-info"><div>**URL:** `/v2/config`</div><div>**Method:** <span class="method-get">GET</span></div><div>**Controller:** V2BaseController@config</div><div>**Auth:** Public (نیاز به توکن ندارد)</div></div></div>### Headers (الزامی)

<div class="api-docs" id="bkmrk-header-name-descript"><table class="schema-table" dir="rtl"><thead><tr><th>Header Name</th><th>Description</th></tr></thead><tbody><tr><td dir="ltr">Domain</td><td>آدرس دامنه‌ای که کاربر با آن سایت را باز کرده است.   
<small>مثال: `crm.travel-agency.com` یا `localhost:3000`</small>   
*سیستم به صورت خودکار `www.` و پورت را حذف می‌کند.*</td></tr></tbody></table>

  </div>### Response Structure

<div class="api-docs" id="bkmrk-field-block-descript"><table class="schema-table" dir="rtl"><thead><tr><th>Field Block</th><th>Description</th></tr></thead><tbody><tr><td dir="ltr">office\_id</td><td>شناسه واقعی شعبه + 1000 (جهت امنیت و عدم نمایش ID اصلی).</td></tr><tr><td dir="ltr">design</td><td>تنظیمات UI/UX: - `theme/style/base_color`: برای تنظیم متغیرهای CSS.
- `logo/favicon`: لینک فایل‌ها.
- `login_text`: متن خوش‌آمدگویی صفحه لاگین.

</td></tr><tr><td dir="ltr">details.financial\_debt</td><td><span style="color: red; font-weight: bold;">مهم:</span> (Boolean)   
اگر `true` باشد، یعنی شعبه فاکتور پرداخت نشده "پشتیبانی" (Support Bill) دارد و دسترسی باید محدود شود.</td></tr><tr><td dir="ltr">details.official</td><td>قوانین هاردکد شده (Hardcoded) مربوط به سیستم حضور و غیاب: - `leave`: قوانین کسر اضافه کار و جایگزین برای مرخصی‌ها.
- `license`: قوانین مربوط به مرخصی ساعتی/مجوزها.

</td></tr><tr><td dir="ltr">details.config</td><td>تنظیمات داینامیک تعریف شده در جدول `office_config`.   
خروجی به صورت Key-Value است (مثلاً `allow_negative_stock: "1"`).</td></tr></tbody></table>

</div>### Example Response

```json
{
    "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"
        }
    }
}
```

<div class="api-docs" id="bkmrk--2">---

  </div>### Logic Flow

<div class="api-docs" id="bkmrk-request-%28header%3A-dom"><div class="flowchart"><div class="flow-item">Request (Header: Domain)</div><div class="flow-arrow">↓</div><div class="flow-item-process">**Domain Parsing**  
Remove 'www.', Remove Port  
Extract Base Domain</div><div class="flow-arrow">↓</div><div class="flow-item-decision">Exists in DB?   
<small>(table: offices)</small></div><div style="display: flex; justify-content: space-between; width: 100%;"><div style="width: 40%;"><div class="flow-arrow" style="transform: rotate(-20deg);">No ↙</div><div class="flow-item-error">**400 Bad Request**  
"The office is not defined"</div></div><div style="width: 40%;"><div class="flow-arrow" style="transform: rotate(20deg);">Yes ↘</div><div class="flow-item-process" style="background-color: #e8f5e9;">**Load Data**  
1. Configs (office_config)  
2. VAT (accounting_titles)  
3. Debt Check (airplus_bills)  
4. Redis Cache Update</div></div></div><div class="flow-arrow">↓</div><div class="flow-item-success">Return JSON Config</div></div></div>