feat: implement SMS notification service and integrate with existing services
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
<?php
|
||||
|
||||
namespace App\Services\Sms;
|
||||
|
||||
use App\Jobs\SendPatternSms;
|
||||
use App\Models\Document;
|
||||
use App\Models\Invoice;
|
||||
use App\Models\User;
|
||||
|
||||
class SmsNotificationService
|
||||
{
|
||||
public function requestRegistered(Document $document): void
|
||||
{
|
||||
$this->dispatch($document->requester, 'request_registered', [
|
||||
'code' => $document->code,
|
||||
]);
|
||||
}
|
||||
|
||||
public function paymentConfirmed(Invoice $invoice): void
|
||||
{
|
||||
$this->dispatch($invoice->user, 'payment_confirmed', [
|
||||
'invoice' => $invoice->number,
|
||||
'amount' => number_format($invoice->amount),
|
||||
]);
|
||||
}
|
||||
|
||||
public function reportReady(Document $document): void
|
||||
{
|
||||
$this->dispatch($document->requester, 'report_ready', [
|
||||
'code' => $document->code,
|
||||
]);
|
||||
}
|
||||
|
||||
protected function dispatch(?User $user, string $patternKey, array $attributes): void
|
||||
{
|
||||
if (empty($user?->phone) || empty(config("services.iranpayamak.patterns.{$patternKey}"))) {
|
||||
return;
|
||||
}
|
||||
|
||||
SendPatternSms::dispatch($user->phone, $patternKey, $attributes);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user