From 5b2ed2e5fcb916085a68f09264a3f2565534fd13 Mon Sep 17 00:00:00 2001 From: adonis Date: Wed, 19 Aug 2026 19:02:46 +0330 Subject: [PATCH] fix(price-trigger): restrict notifications to SMS only Remove email/in-app paths and enforce sms action on create/update so price alerts match the product requirement for SMS-only delivery. Co-authored-by: Cursor --- .../Controllers/Admin/PriceTriggerController.php | 4 +++- .../Controllers/Customer/PriceTriggerController.php | 2 ++ app/Services/PriceTriggerService.php | 12 +++++------- 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/app/Http/Controllers/Admin/PriceTriggerController.php b/app/Http/Controllers/Admin/PriceTriggerController.php index fd4bbd3..540cc85 100644 --- a/app/Http/Controllers/Admin/PriceTriggerController.php +++ b/app/Http/Controllers/Admin/PriceTriggerController.php @@ -31,6 +31,7 @@ class PriceTriggerController extends Controller $trigger = PriceTrigger::create([ ...$data, + 'action' => 'sms', 'is_active' => $data['is_active'] ?? true, ]); @@ -46,6 +47,7 @@ class PriceTriggerController extends Controller { $trigger = PriceTrigger::findOrFail($id); $data = $this->validatedPayload($request, true); + $data['action'] = 'sms'; $trigger->update($data); @@ -82,7 +84,7 @@ class PriceTriggerController extends Controller 'product_id' => ($partial ? 'sometimes|' : '') . 'required|integer|exists:products,id', 'target_price' => ($partial ? 'sometimes|' : '') . 'required|numeric|min:1', 'price_condition' => ($partial ? 'sometimes|' : '') . 'required|in:>,<', - 'action' => ($partial ? 'sometimes|' : '') . 'required|in:sms,email', + 'action' => ($partial ? 'sometimes|' : '') . 'required|in:sms', 'is_active' => 'sometimes|boolean', ]; diff --git a/app/Http/Controllers/Customer/PriceTriggerController.php b/app/Http/Controllers/Customer/PriceTriggerController.php index 0e6a517..ecc4d48 100644 --- a/app/Http/Controllers/Customer/PriceTriggerController.php +++ b/app/Http/Controllers/Customer/PriceTriggerController.php @@ -37,6 +37,7 @@ class PriceTriggerController extends SuperController public function store(Request $request) { $this->sanitizeProductId($request, true); + $request->merge(['action' => 'sms']); return parent::store($request); } @@ -44,6 +45,7 @@ class PriceTriggerController extends SuperController public function update(Request $request, $id) { $this->sanitizeProductId($request, false); + $request->merge(['action' => 'sms']); return parent::update($request, $id); } diff --git a/app/Services/PriceTriggerService.php b/app/Services/PriceTriggerService.php index ad25fde..879216b 100644 --- a/app/Services/PriceTriggerService.php +++ b/app/Services/PriceTriggerService.php @@ -3,13 +3,11 @@ namespace App\Services; use App\Http\Controllers\Controller; -use App\Mail\YourMailableClass; use App\Models\Customer; use App\Models\Price; use App\Models\PriceTrigger; use App\Models\Product; use Illuminate\Support\Facades\Log; -use Illuminate\Support\Facades\Mail; class PriceTriggerService { @@ -167,14 +165,14 @@ class PriceTriggerService $shopName = (string) Controller::Config('name_fa'); $message = 'قیمت ' . $title . ' به ' . number_format((int) $current) . " رسید\n" . $shopName; - if ($trigger->action === 'email' && ! empty($customer->email)) { - Mail::to($customer->email)->send(new YourMailableClass($message, '', '', '', '')); - + if (! Controller::isSmsNotifEnabled('sms_notif_price_trigger')) { return; } - if ($trigger->action === 'sms' && Controller::isSmsNotifEnabled('sms_notif_price_trigger')) { - Controller::Send($customer->mobile, $message); + if (trim((string) ($customer->mobile ?? '')) === '') { + return; } + + Controller::Send($customer->mobile, $message); } }