# POST /api/v2/get_visa_country

<div id="bkmrk-" style="direction: rtl; font-family: Vazir,Tahoma; text-align: justify; line-height: 1.85;"></div>### Route Info

<div id="bkmrk-method-endpoint-cont" style="direction: rtl; font-family: Vazir,Tahoma; text-align: justify; line-height: 1.85;"><table border="1" style="width: 96%; margin: auto; border-collapse: collapse; text-align: center;"><tbody><tr style="background: #f9f9f9; font-weight: bold;"><td>Method</td><td>Endpoint</td><td>Controller</td><td>Middleware</td><td>Purpose</td></tr><tr><td style="direction: ltr;">POST</td><td style="direction: ltr;">/api/v2/get\_visa\_country</td><td style="direction: ltr;">UserController@getVisaCountry</td><td style="direction: ltr;">authWithJwt</td><td style="direction: rtl; text-align: right;">بازیابی فهرست کشورها با نام و ملیت برای کاربردهای ویزا</td></tr></tbody></table>

</div>### منطق عملکرد

<div id="bkmrk-%DA%A9%D9%88%D8%A6%D8%B1%DB%8C-%D9%85%D8%AF%D9%84-country-%D8%A8%D8%A7" style="direction: rtl; font-family: Vazir,Tahoma; text-align: justify; line-height: 1.85;">- کوئری مدل `Country` با شرط: 
    - `status=1`
    - `fa_name` غیر تهی
- انتخاب ستون‌های: `id`, `iso`, `fa_name`, `en_name`, `fa_nationality`, `en_nationality`.
- بازگرداندن داده‌ها در کلید `countries`.
- مدیریت خطا با Try/Catch و ارسال کد 400 در صورت Exception.

</div>### پارامترهای ورودی

بدون پارامتر ورودی لازم، صرفاً JWT معتبر.

```
POST /api/v2/get_visa_country
Authorization: Bearer <JWT>
```

<div id="bkmrk--1" style="direction: rtl; font-family: Vazir,Tahoma; text-align: justify; line-height: 1.85;"></div>### نمونه خروجی موفق

```
{
  "status": true,
  "time": 1732035260,
  "data": {
    "countries": [
      {
        "id": 118,
        "iso": "IR",
        "fa_name": "ایران",
        "en_name": "Iran",
        "fa_nationality": "ایرانی",
        "en_nationality": "Iranian"
      }
    ]
  }
}
```

<div id="bkmrk-%2A%2A%D9%86%D9%85%D9%88%D9%86%D9%87-%D8%AE%D8%B7%D8%A7%3A%2A%2A" style="direction: rtl; font-family: Vazir,Tahoma; text-align: justify; line-height: 1.85;">**نمونه خطا:**</div>```
{
  "status": false,
  "error": "Database connection failed"
}
```

<div id="bkmrk--2" style="direction: rtl; font-family: Vazir,Tahoma; text-align: justify; line-height: 1.85;"></div>### امنیت

<div id="bkmrk-jwt-%D9%85%D8%B9%D8%AA%D8%A8%D8%B1-%D9%84%D8%A7%D8%B2%D9%85-%D8%A7%D8%B3%D8%AA." style="direction: rtl; font-family: Vazir,Tahoma; text-align: justify; line-height: 1.85;">- JWT معتبر لازم است.

</div>### Dependencies

<div id="bkmrk-country-model" style="direction: rtl; font-family: Vazir,Tahoma; text-align: justify; line-height: 1.85;">- Country Model

</div>### کارایی

کوئری ساده Select، زمان اجرا ~3 ms.

<div id="bkmrk--3" style="direction: rtl; font-family: Vazir,Tahoma; text-align: justify; line-height: 1.85;"></div>### مدیریت خطا

<div id="bkmrk-try%2Fcatch-%D8%A8%D8%B1%D8%A7%DB%8C-%D8%AC%D9%84%D9%88%DA%AF%DB%8C" style="direction: rtl; font-family: Vazir,Tahoma; text-align: justify; line-height: 1.85;">- Try/Catch برای جلوگیری از کرش.

</div>### پیشنهاد بهبود

<div id="bkmrk-%DA%A9%D8%B4%E2%80%8C%DA%A9%D8%B1%D8%AF%D9%86-%D9%86%D8%AA%D8%A7%DB%8C%D8%AC-%D8%A8%D8%B1%D8%A7%DB%8C-%DA%A9" style="direction: rtl; font-family: Vazir,Tahoma; text-align: justify; line-height: 1.85;">- کش‌کردن نتایج برای کاهش بار DB.

</div>### جمع‌بندی

روت امکان بازیابی سریع کشورها برای کاربردهای صدور ویزا را فراهم می‌کند.

<div id="bkmrk-get-visa-country" style="direction: rtl; font-family: Vazir,Tahoma; text-align: justify; line-height: 1.85;"></div>