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([
|
$trigger = PriceTrigger::create([
|
||||||
...$data,
|
...$data,
|
||||||
|
'action' => 'sms',
|
||||||
'is_active' => $data['is_active'] ?? true,
|
'is_active' => $data['is_active'] ?? true,
|
||||||
]);
|
]);
|
||||||
|
|
||||||
@@ -46,6 +47,7 @@ class PriceTriggerController extends Controller
|
|||||||
{
|
{
|
||||||
$trigger = PriceTrigger::findOrFail($id);
|
$trigger = PriceTrigger::findOrFail($id);
|
||||||
$data = $this->validatedPayload($request, true);
|
$data = $this->validatedPayload($request, true);
|
||||||
|
$data['action'] = 'sms';
|
||||||
|
|
||||||
$trigger->update($data);
|
$trigger->update($data);
|
||||||
|
|
||||||
@@ -82,7 +84,7 @@ class PriceTriggerController extends Controller
|
|||||||
'product_id' => ($partial ? 'sometimes|' : '') . 'required|integer|exists:products,id',
|
'product_id' => ($partial ? 'sometimes|' : '') . 'required|integer|exists:products,id',
|
||||||
'target_price' => ($partial ? 'sometimes|' : '') . 'required|numeric|min:1',
|
'target_price' => ($partial ? 'sometimes|' : '') . 'required|numeric|min:1',
|
||||||
'price_condition' => ($partial ? 'sometimes|' : '') . 'required|in:>,<',
|
'price_condition' => ($partial ? 'sometimes|' : '') . 'required|in:>,<',
|
||||||
'action' => ($partial ? 'sometimes|' : '') . 'required|in:sms,email',
|
'action' => ($partial ? 'sometimes|' : '') . 'required|in:sms',
|
||||||
'is_active' => 'sometimes|boolean',
|
'is_active' => 'sometimes|boolean',
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|||||||
@@ -37,6 +37,7 @@ class PriceTriggerController extends SuperController
|
|||||||
public function store(Request $request)
|
public function store(Request $request)
|
||||||
{
|
{
|
||||||
$this->sanitizeProductId($request, true);
|
$this->sanitizeProductId($request, true);
|
||||||
|
$request->merge(['action' => 'sms']);
|
||||||
|
|
||||||
return parent::store($request);
|
return parent::store($request);
|
||||||
}
|
}
|
||||||
@@ -44,6 +45,7 @@ class PriceTriggerController extends SuperController
|
|||||||
public function update(Request $request, $id)
|
public function update(Request $request, $id)
|
||||||
{
|
{
|
||||||
$this->sanitizeProductId($request, false);
|
$this->sanitizeProductId($request, false);
|
||||||
|
$request->merge(['action' => 'sms']);
|
||||||
|
|
||||||
return parent::update($request, $id);
|
return parent::update($request, $id);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,13 +3,11 @@
|
|||||||
namespace App\Services;
|
namespace App\Services;
|
||||||
|
|
||||||
use App\Http\Controllers\Controller;
|
use App\Http\Controllers\Controller;
|
||||||
use App\Mail\YourMailableClass;
|
|
||||||
use App\Models\Customer;
|
use App\Models\Customer;
|
||||||
use App\Models\Price;
|
use App\Models\Price;
|
||||||
use App\Models\PriceTrigger;
|
use App\Models\PriceTrigger;
|
||||||
use App\Models\Product;
|
use App\Models\Product;
|
||||||
use Illuminate\Support\Facades\Log;
|
use Illuminate\Support\Facades\Log;
|
||||||
use Illuminate\Support\Facades\Mail;
|
|
||||||
|
|
||||||
class PriceTriggerService
|
class PriceTriggerService
|
||||||
{
|
{
|
||||||
@@ -167,14 +165,14 @@ class PriceTriggerService
|
|||||||
$shopName = (string) Controller::Config('name_fa');
|
$shopName = (string) Controller::Config('name_fa');
|
||||||
$message = 'قیمت ' . $title . ' به ' . number_format((int) $current) . " رسید\n" . $shopName;
|
$message = 'قیمت ' . $title . ' به ' . number_format((int) $current) . " رسید\n" . $shopName;
|
||||||
|
|
||||||
if ($trigger->action === 'email' && ! empty($customer->email)) {
|
if (! Controller::isSmsNotifEnabled('sms_notif_price_trigger')) {
|
||||||
Mail::to($customer->email)->send(new YourMailableClass($message, '', '', '', ''));
|
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($trigger->action === 'sms' && Controller::isSmsNotifEnabled('sms_notif_price_trigger')) {
|
if (trim((string) ($customer->mobile ?? '')) === '') {
|
||||||
Controller::Send($customer->mobile, $message);
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Controller::Send($customer->mobile, $message);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user