# POST /v2/trade/confirmation

# Trade: Contract Confirmation

این اندپوینت جهت **تایید نهایی قرارداد** (فاکتور) توسط اپراتور استفاده می‌شود.   
با فراخوانی این سرویس، فیلد تاییدیه در دیتابیس با زمان جاری مقداردهی شده و در صورت درخواست، پیامک اطلاع‌رسانی حاوی لینک قرارداد دیجیتال برای مسافر (سرگروه) ارسال می‌شود.

<div class="api-docs" id="bkmrk-"></div>## Request Overview

<div class="api-docs" id="bkmrk-url%3A-%2Fv2%2Ftrade%2Fconfi"><div class="endpoint-info"><div>**URL:** `/v2/trade/confirmation`</div><div>**Method:** <span class="method-post">POST</span></div><div>**Controller:** V2TradeController@confirmationTrade</div></div></div>## Access Control

<div class="api-docs" id="bkmrk-%D9%86%DB%8C%D8%A7%D8%B2-%D8%A8%D9%87-%D8%A7%D8%AD%D8%B1%D8%A7%D8%B2-%D9%87%D9%88%DB%8C%D8%AA-%28">- نیاز به احراز هویت (احتمالاً JWT با توجه به سایر متدها).
- دسترسی به `branch` ارسال شده.

</div>## Body Parameters

<div class="api-docs" id="bkmrk-field-type-descripti"><table class="schema-table" dir="rtl"><thead><tr><th>Field</th><th>Type</th><th>Description</th></tr></thead><tbody><tr><td>serial\_id</td><td>integer</td><td>**(الزامی)** شناسه فاکتور (Contract ID) که باید تایید شود.</td></tr><tr><td>branch</td><td>integer</td><td>**(الزامی)** شناسه شعبه جهت فیلترینگ امنیتی.</td></tr><tr><td>notices</td><td>boolean</td><td>**(اختیاری)** اگر `true` ارسال شود، سیستم اقدام به ارسال پیامک اطلاع‌رسانی به مسافر می‌کند.</td></tr></tbody></table>

</div>## Logic Details

فرآیند تایید شامل مراحل زیر است:

<div class="api-docs" id="bkmrk-%DB%8C%D8%A7%D9%81%D8%AA%D9%86-%D9%81%D8%A7%DA%A9%D8%AA%D9%88%D8%B1%3A-%D8%AC%D8%B3%D8%AA%D8%AC%D9%88-">1. **یافتن فاکتور:** جستجو در جدول `factors` بر اساس `serial_id` و `branch`.
2. **ثبت تاییدیه:** به‌روزرسانی ستون `confirmation` با زمان جاری سرور (`Carbon::now`).
3. **ارسال اعلان (Notification Logic):** اگر پارامتر `notices` ارسال شده باشد: 
    - شماره موبایل مسافر (Customer) از جدول `customers` استخراج می‌شود.
    - اطلاعات شعبه (نام فارسی و تلفن) از جدول `offices` استخراج می‌شود.
    - **ساخت پیام:** متنی حاوی تایید قرارداد، لینک کوتاه (`mmah.ir/c/{slug}`)، تاریخ شمسی و تلفن پشتیبانی ایجاد می‌شود.
    - **صف‌بندی:** جاب `SendNotification` به صف اولویت بالا (`fastJob`) ارسال می‌شود.

</div>## Response Structure

### پاسخ موفق

<div class="api-docs" id="bkmrk-status-code%3A-200-ok-">- **Status Code:** `200 OK`
- **Body:**

</div>```json
{
  "status": true,
  "time": 1715001200
}
```

### پاسخ خطا

<div class="api-docs" id="bkmrk-status-code%3A-404-not">- **Status Code:** `404 Not Found` (حتی در صورت خطای داخلی سرور کد 404 برگردانده می‌شود).
- **Body:**

</div>```json
{
  "status": false,
  "code": 5007,
  "message": "خطا در ارسال اطلاعات.",
  "trace": [ ... ]
}
```

<div class="api-docs" id="bkmrk--1"></div>## Flowchart

<div class="api-docs" id="bkmrk-start-%E2%86%93-fetch-factor"><div class="flowchart"><div class="flow-item">Start</div><div class="flow-arrow">↓</div><div class="flow-item-process">**Fetch Factor Details**  
(ID, Slug, CustomerID)</div><div class="flow-arrow">↓</div><div class="flow-item-process" style="background-color: #e3f2fd;">**Update Database**  
SET confirmation = NOW()</div><div class="flow-arrow">↓</div><div class="flow-item-decision">Notice Req?</div><div style="position: relative; height: 60px;"><div class="flow-arrow-label-right" style="top: -10px;">No</div><div class="flow-arrow-label-left" style="top: -10px;">Yes</div></div><div style="display: flex; justify-content: space-between; width: 400px; margin: 0 auto;"><div style="width: 200px;"><div class="flow-item-process" style="background-color: #fff3e0;">**Prepare SMS**  
1. Get Customer Mobile  
2. Get Branch Info  
3. Build Msg (Link+Date)</div><div class="flow-arrow">↓</div><div class="flow-item-process">Dispatch to `fastJob`</div></div><div style="width: 100px;"></div></div><div class="flow-arrow">↓</div><div class="flow-item-success">Return Success JSON</div></div></div>