#P1578
PUT /api/v2/scheduled/notifications
Route Info
| Method | Endpoint | Controller | Middleware |
| PUT | /api/v2/scheduled/notifications | OfficialController@updateScheduledNotifications | authWithJwt |
تحلیل دقیق عملکرد (Deep Functionality Analysis)
این متد یک بروزرسانی کامل (Full Update) روی جدول scheduled_notifications انجام میدهد. نکته حیاتی اینجاست که حتی فیلدهای سیستمی مانند branch و operator نیز بازنویسی میشوند.
منطق دقیق کد:
- استخراج وابستگیهای سیستمی (System Dependencies):
متد مقادیرbranchوoperatorرا از آبجکت$requestمیخواند.
⚠️ نکته امنیتی: این مقادیر معمولاً توسط میدلورauthWithJwtتزریق میشوند، اما کد کنترلر کورکورانه آنها را آپدیت میکند ($request->get('operator')->id). این یعنی مالکیت رکورد به "اپراتور و شعبه جاری" تغییر میکند. - تبدیل دادهها (Data Transformation):
فیلدهایrecipientsوdevicesالزاماً باjson_encodeتبدیل میشوند. فیلدmobilesمنطق شرطی دارد: اگر مقدار داشته باشد تبدیل به JSON میشود، در غیر این صورتNULLذخیره میشود. - مدیریت زمان (Timestamping):
چون ازDB::tableاستفاده شده،updated_atخودکار نیست و باCarbon::now()دقیقاً در لحظه آپدیت تنظیم میشود.
پارامترهای پردازش شده (Processed Parameters)
این جدول شامل تمام دادههایی است که در آرایه $update استفاده شدهاند، چه توسط کاربر ارسال شوند و چه توسط سیستم تزریق شوند.
| Key / Variable | Source Type | Required | Logic / Transformation |
|---|---|---|---|
| id | Integer | Yes | در شرط where استفاده میشود. |
| branch | Integer | Yes* | مستقیماً در دیتابیس ذخیره میشود (معمولاً تزریق شده توسط Middleware). |
| operator | Object (User) | Yes* | آبجکت یوزر دریافت شده و ->id آن استخراج و ذخیره میشود. |
| recipients | Array | Yes | توسط json_encode به رشته تبدیل میشود. |
| devices | Object/Array | Yes | توسط json_encode به رشته تبدیل میشود. |
| object | String | Yes | بدون تغییر ذخیره میشود. |
| type | String | Yes | بدون تغییر ذخیره میشود. |
| period | String/Int | Yes | بدون تغییر ذخیره میشود. |
| status | Boolean/Int | Yes | بدون تغییر ذخیره میشود. |
| mobiles | Array/Null | No | اگر وجود داشته باشد json_encode میشود، وگرنه NULL. |
ساختار پاسخها (Response Structures)
✅ Success (200 OK)
{
"status": true,
"time": 1732631500
}
❌ Error (Exception Captured)
{
"status": false,
"time": 1732631505,
"message": "...", // PHP/SQL Error Message
"trace": [ ... ]
}