47 lines
1.2 KiB
PHP
47 lines
1.2 KiB
PHP
<?php
|
|
|
|
namespace App\Mail;
|
|
|
|
use App\Models\DynamicInvitation;
|
|
use Illuminate\Bus\Queueable;
|
|
use Illuminate\Mail\Mailable;
|
|
use Illuminate\Mail\Mailables\Content;
|
|
use Illuminate\Mail\Mailables\Envelope;
|
|
use Illuminate\Queue\SerializesModels;
|
|
use Illuminate\Support\Facades\URL;
|
|
|
|
class DynamicInvitationMail extends Mailable
|
|
{
|
|
use Queueable, SerializesModels;
|
|
|
|
public function __construct(public DynamicInvitation $invitation, public string $inviterName)
|
|
{
|
|
//
|
|
}
|
|
|
|
public function envelope(): Envelope
|
|
{
|
|
return new Envelope(
|
|
subject: 'Invitation to Join Dynamic: '.$this->invitation->dynamic->name,
|
|
);
|
|
}
|
|
|
|
public function content(): Content
|
|
{
|
|
$acceptUrl = URL::temporarySignedRoute(
|
|
'dynamics.invitations.accept',
|
|
$this->invitation->expires_at,
|
|
['token' => $this->invitation->token]
|
|
);
|
|
|
|
return new Content(
|
|
markdown: 'emails.dynamics.invitation',
|
|
with: [
|
|
'acceptUrl' => $acceptUrl,
|
|
'dynamicName' => $this->invitation->dynamic->name,
|
|
'role' => $this->invitation->role,
|
|
],
|
|
);
|
|
}
|
|
}
|