ldc-gen-game-web/app/Mail/Won/PrizeIsSentMail.php

64 lines
1.8 KiB
PHP

<?php
namespace App\Mail\Won;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Mail\Mailable;
use Illuminate\Mail\Mailables\Address;
use Illuminate\Mail\Mailables\Content;
use Illuminate\Mail\Mailables\Envelope;
use Illuminate\Queue\SerializesModels;
use Illuminate\Support\Facades\View;
class PrizeIsSentMail extends Mailable implements ShouldQueue
{
use Queueable;
use SerializesModels;
/**
* Create a new message instance.
*
* @param \Illuminate\Mail\Mailables\Address $recipient The winner that has submited winning proof.
* @param string $game_name The game name.
* @param string $company The company name.
* @return void
*/
public function __construct(
protected Address $recipient,
protected string $game_name,
protected string $company
) {}
/**
* Get the message envelope.
*
* @return \Illuminate\Mail\Mailables\Envelope
*/
public function envelope(): \Illuminate\Mail\Mailables\Envelope
{
return new Envelope(
to: [$this->recipient],
subject: trans('front.mails.subjects.prize_shipped'),
);
}
/**
* Get the message content definition.
*
* @return \Illuminate\Mail\Mailables\Content
*/
public function content(): \Illuminate\Mail\Mailables\Content
{
// * Fix for async usage
View::addNamespace('theme', resource_path('theme/mounted/views'));
return new Content(
markdown: 'theme::mails.prize-sent',
with: [
'first_name' => $this->recipient->name ?? $this->recipient->address,
'game_name' => $this->game_name,
'company' => $this->company,
],
);
}
}