Skip to main content
#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 نیز بازنویسی می‌شوند.

منطق دقیق کد:

  1. استخراج وابستگی‌های سیستمی (System Dependencies):
    متد مقادیر branch و operator را از آبجکت $request می‌خواند.
    ⚠️ نکته امنیتی: این مقادیر معمولاً توسط میدل‌ور authWithJwt تزریق می‌شوند، اما کد کنترلر کورکورانه آن‌ها را آپدیت می‌کند ($request->get('operator')->id). این یعنی مالکیت رکورد به "اپراتور و شعبه جاری" تغییر می‌کند.
  2. تبدیل داده‌ها (Data Transformation):
    فیلدهای recipients و devices الزاماً با json_encode تبدیل می‌شوند. فیلد mobiles منطق شرطی دارد: اگر مقدار داشته باشد تبدیل به JSON می‌شود، در غیر این صورت NULL ذخیره می‌شود.
  3. مدیریت زمان (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": [ ... ]
}