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 <cursoragent@cursor.com>
This commit is contained in:
2026-08-19 19:02:46 +03:30
co-authored by Cursor
parent 832a7683fb
commit 5b2ed2e5fc
3 changed files with 10 additions and 8 deletions
@@ -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',
];
@@ -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);
}
+4 -6
View File
@@ -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 (trim((string) ($customer->mobile ?? '')) === '') {
return;
}
if ($trigger->action === 'sms' && Controller::isSmsNotifEnabled('sms_notif_price_trigger')) {
Controller::Send($customer->mobile, $message);
}
}
}