File: /home/armgroup/libs/app/Http/Livewire/Admin/Order/VerifyDeliveryLink.php
<?php
namespace App\Http\Livewire\Admin\Order;
use App\Channels\SMSChannel;
use App\Http\Livewire\ConvertEmptyStringsToNull;
use App\Http\Livewire\General;
use App\Models\Order;
use App\Notifications\DeliveryLink;
use App\Rules\Mobile;
use Illuminate\Support\Facades\Notification;
use Illuminate\Support\Facades\URL;
use Livewire\Component;
class VerifyDeliveryLink extends Component
{
use ConvertEmptyStringsToNull, General;
public Order $order;
public $mobile;
public $email;
public $link;
public $expiration = 12;
protected function rules()
{
return [
'mobile' => ['nullable', new Mobile],
'email' => ['nullable', 'email'],
'expiration' => ['required', 'integer', 'min:1', 'max:168'],
];
}
public function render()
{
return view('livewire.admin.order.verify-delivery-link');
}
public function send()
{
$this->validate();
$this->link = URL::temporarySignedRoute(
'orders.showDeliveredForm', now()->addMinutes($this->expiration), ['order' => $this->order->id]
);
Notification::route('mail', $this->email)
->route(SMSChannel::class, $this->mobile)
->notify(new DeliveryLink($this->order, $this->link));
$this->email = $this->mobile = null;
$this->expiration = 12;
$this->ajaxDoneMessage();
}
}