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:
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user