# GET /api/v2/notifications

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

<div id="bkmrk-method-endpoint-cont" style="font-family: Vazir, Tahoma; direction: rtl; text-align: justify; line-height: 1.9;"><table border="1" cellpadding="6" cellspacing="0" style="margin: 15px auto; width: 95%; 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><td>تگ Swagger</td></tr><tr><td style="direction: ltr; text-align: left;">GET</td><td style="direction: ltr; text-align: left;">/api/v2/notifications</td><td style="direction: ltr; text-align: left;">V2BaseController@notifications</td><td style="direction: ltr; text-align: left;">domainAccess, ipTrust</td><td style="direction: rtl; text-align: right;">دریافت لیست اعلان‌های سیستمی و به‌روزرسانی‌ها در محیط کاربر</td><td style="direction: ltr; text-align: left;">tags={"Base","Notifications"}</td></tr></tbody></table>

</div>### توضیح عملکرد (Function Logic)

<div id="bkmrk-%D8%A7%DB%8C%D9%86-endpoint-%D8%A2%D8%B1%D8%A7%DB%8C%D9%87%E2%80%8C%D8%A7" style="font-family: Vazir, Tahoma; direction: rtl; text-align: justify; line-height: 1.9;"><div style="direction: rtl; text-align: justify;">این Endpoint آرایه‌ای از اعلان‌های عمومی (Public System Notifications) را برمی‌گرداند که معمولاً شامل تغییرات جدید در امکانات، هشدارهای داخلی یا پیام‌های اداری است. در حال حاضر ثابت (Static) است اما معمولاً در محیط Production داده‌ها از جدول `notifications` یا کش Redis تأمین می‌شوند.</div>1. احراز IP و دامنه درخواست از طریق Middlewareهای `domainAccess` و `ipTrust`.
2. تولید آرایه‌ای از اعلان‌ها با فیلدهای کلیدی: 
    - **id:** شناسه یکتا
    - **icon:** آیکن متریال مرتبط با اعلان
    - **title:** تیتر اعلان
    - **description:** متن توضیحی اعلان
    - **time:** زمان ایجاد اعلان به فرمت شمسی
    - **read:** وضعیت مطالعه‌شده بودن توسط کاربر
    - **link:** مسیر واکنش‌پذیر (قابل کلیک در UI)
    - **useRouter:** نوع هدایت (true ⇒ استفاده از Router داخلی SPA)
3. بازگشت خروجی به صورت JSON (بدون نیاز به Token در این نسخه از Endpoint)

</div>### ساختار درخواست (Request)

<div id="bkmrk-%D8%A7%DB%8C%D9%86-%D9%85%D8%AA%D8%AF-%D9%86%DB%8C%D8%A7%D8%B2%DB%8C-%D8%A8%D9%87-%D9%BE%D8%A7%D8%B1" style="font-family: Vazir, Tahoma; direction: rtl; text-align: justify; line-height: 1.9;"><div style="direction: rtl; text-align: right;">این متد نیازی به پارامتر ورودی ندارد.</div></div>```
GET /api/v2/notifications
Domain: example.domain
```

<div id="bkmrk--1" style="font-family: Vazir, Tahoma; direction: rtl; text-align: justify; line-height: 1.9;"></div>### خروجی (Response Structure)

<div id="bkmrk-%D9%81%DB%8C%D9%84%D8%AF-%D9%86%D9%88%D8%B9-%D8%AF%D8%A7%D8%AF%D9%87-%D8%AA%D9%88%D8%B6%DB%8C%D8%AD-" style="font-family: Vazir, Tahoma; direction: rtl; text-align: justify; line-height: 1.9;"><table border="1" cellpadding="6" cellspacing="0" style="margin: 15px auto; width: 97%; border-collapse: collapse; text-align: center;"><tbody><tr style="background: #f9f9f9; font-weight: bold;"><td>فیلد</td><td>نوع داده</td><td>توضیح</td></tr><tr><td>id</td><td>string</td><td style="direction: rtl; text-align: right;">شناسه یکتا برای هر اعلان</td></tr><tr><td>icon</td><td>string</td><td style="direction: rtl; text-align: right;">نام آیکن متریال (برای نمایش تصویری اعلان)</td></tr><tr><td>title</td><td>string</td><td style="direction: rtl; text-align: right;">تیتر کوتاه اعلان</td></tr><tr><td>description</td><td>string</td><td style="direction: rtl; text-align: right;">توضیح کامل محتوای اعلان</td></tr><tr><td>time</td><td>string (datetime)</td><td style="direction: rtl; text-align: right;">تاریخ و ساعت اعلان به فرمت شمسی</td></tr><tr><td>read</td><td>boolean</td><td style="direction: rtl; text-align: right;">وضعیت خوانده‌شدن اعلان توسط کاربر</td></tr><tr><td>link</td><td>string</td><td style="direction: rtl; text-align: right;">مسیر URL یا Route مقصد</td></tr><tr><td>useRouter</td><td>boolean</td><td style="direction: rtl; text-align: right;">True ⇐ استفاده از Router کلاینتی برای تغییر مسیر نرم‌افزاری</td></tr></tbody></table>

</div>### نمونه پاسخ

```
[
  {
    "id": "01",
    "icon": "airline_seat_recline_extra",
    "title": "ویرایش خرید پرواز آنلاین",
    "description": "به اطلاع کلیه همکاران میرسانیم قسمت ویرایش پرواز های آنلاین فعال گردید.",
    "time": "1402-02-02 00:00:00",
    "read": true,
    "link": "/",
    "useRouter": true
  }
]
```

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

<div id="bkmrk-%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87-%D8%A7%D8%B2-middlewar" style="font-family: Vazir, Tahoma; direction: rtl; text-align: justify; line-height: 1.9;">- استفاده از Middleware **domainAccess** و **ipTrust** برای محدود کردن دسترسی به دامنه‌ها و IPهای مجاز.
- در حالت فعلی نیازی به **توکن JWT** ندارد اما در محیط Production معمولاً با `authWithJwt` ترکیب می‌شود.
- در پاسخ، مقادیر هیچ داده‌ی حساسی برنمی‌گردد — تنها اعلان‌های عمومی هستند.

</div>### توضیح فیلدهای پاسخ

<div id="bkmrk-id%3A-%D8%B4%D9%86%D8%A7%D8%B3%D9%87-%D8%B9%D8%AF%D8%AF%DB%8C-%2F-%D8%B1%D8%B4%D8%AA" style="font-family: Vazir, Tahoma; direction: rtl; text-align: justify; line-height: 1.9;">- **id:** شناسه عددی / رشته‌ای قابل جست‌وجو برای هر اعلان در کلاینت.
- **icon:** نام آیکن از مجموعه Material Icons برای نمایش در رابط کاربری.
- **title:** تیتر کوتاه در بالای باکس اعلان.
- **description:** پیام اصلی اطلاع‌رسانی.
- **time:** رشته زمان به فرمت "YYYY-MM-DD HH:MM:SS".
- **read:** وضعیت مطالعه (true = خوانده شده).
- **link:** مسیر قابل کلیک داخل سیستم (مثلاً "/dashboard").
- **useRouter:** اگر true باشد، مسیر فوق در Router داخلی اپلیکیشن باز می‌شود بدون رفرش.

</div>### وابستگی‌ها (Dependencies)

<div id="bkmrk-use-illuminate%5Chttp%5C" style="font-family: Vazir, Tahoma; direction: rtl; text-align: justify; line-height: 1.9;">- use Illuminate\\Http\\Request;
- use App\\Http\\Controllers\\Controller as BaseController;

</div>### پیوست نگهداری و توسعه بعدی

<div id="bkmrk-%D8%A8%D9%87%D8%A8%D9%88%D8%AF-%D8%B3%D8%A7%D8%AE%D8%AA%D8%A7%D8%B1-%D8%AE%D8%B1%D9%88%D8%AC%DB%8C-%D8%A8" style="font-family: Vazir, Tahoma; direction: rtl; text-align: justify; line-height: 1.9;">- بهبود ساختار خروجی برای پشتیبانی از چند اعلان هم‌زمان (pagination و unread count).
- افزودن فیلد `category` برای تفکیک نوع اعلان (مثلاً “news”, “update”, “security”).
- افزودن endpoint جدید: `PATCH /api/v2/notifications/read` برای علامت‌گذاری اعلان‌ها به عنوان خوانده شده.
- ذخیره کش Redis از نوتیفیکیشن‌ها برای سرعت بیشتر پنل.

</div>