43 lines
1.1 KiB
PHP
43 lines
1.1 KiB
PHP
<?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);
|
|
}
|
|
}
|