ifnex/04_Laravel/app/Notifications/PaymentSuccessSms.php
Kazem Alghasi d6e04d53fa feat(core): integrate Kavenegar SMS notifications and audit logging
Implement a comprehensive notification system using Kavenegar SMS
gateway and enhance system traceability through audit logging and
detailed shipment status history.

- SMS Integration:
  - Add Kavenegar SMS service with configurable API keys and sender
    numbers via system settings.
  - Implement automated SMS notifications for shipment approval,
    rejection, successful payments, and tracking updates.
  - Add administrative UI in Filament to manage SMS gateway settings
    and toggle specific notification types.
- Audit & Tracking:
  - Apply `Auditable` trait to core models (User, Shipment, Wallet,
    etc.) to track changes.
  - Refactor `ShipmentStatusHistory` to include status transitions
    (`from_status` to `to_status`) and specific reasons for changes.
  - Implement `ShipmentObserver` to automate notification triggers
    on status changes.
- Database & Config:
  - Add migrations for enhanced shipment status history tracking.
  - Update `.env.example` and `config/ifnex.php` with Kavenegar
    configuration parameters.
2026-09-10 00:52:18 +03:30

35 lines
1002 B
PHP

<?php
namespace App\Notifications;
use App\Models\User;
use Illuminate\Bus\Queueable;
use Illuminate\Notifications\Notification;
class PaymentSuccessSms extends Notification
{
use Queueable;
public function __construct(public string $awbNo, public int $amount) {}
public function via(object $notifiable): array
{
return ['database', 'sms'];
}
public function toSms(User $notifiable): ?string
{
return "پرداخت سفارش شما با موفقیت انجام شد.\nشماره پیگیری: {$this->awbNo}\nمبلغ: " . number_format($this->amount) . " ریال";
}
public function toArray(object $notifiable): array
{
return [
'title' => 'پرداخت موفق',
'body' => "پرداخت سفارش {$this->awbNo} با موفقیت انجام شد. مبلغ: " . number_format($this->amount) . " ریال",
'awb_no' => $this->awbNo,
'amount' => $this->amount,
];
}
}