ldc-gen-game-web/app/Mail/Won/DiscountWonMail.php
2023-12-12 12:25:45 +01:00

71 lines
2 KiB
PHP

<?php
namespace App\Mail\Won;
use App\Lib\Discount;
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 DiscountWonMail extends Mailable implements ShouldQueue
{
use Queueable;
use SerializesModels;
/**
* Create a new message instance.
*
* @param \Illuminate\Mail\Mailables\Address $recipient The winner.
* @param string $game_name The game name.
* @param \App\Lib\Discount $discount Amount of the won discount in cents.
* @param string $print_url Url to print the discount.
*
* @return void
*/
public function __construct(
protected Address $recipient,
protected string $game_name,
protected Discount $discount,
protected string $print_url
) {
}
/**
* Get the message envelope.
*
* @return \Illuminate\Mail\Mailables\Envelope
*/
public function envelope(): \Illuminate\Mail\Mailables\Envelope
{
return new Envelope(
to: [$this->recipient],
subject: trans('Votre gain du jeu :game_name', [
'game_name' => $this->game_name
]),
);
}
/**
* Get the message content definition.
*
* @return \Illuminate\Mail\Mailables\Content
*/
public function content(): \Illuminate\Mail\Mailables\Content
{
View::addNamespace('theme', resource_path('theme/mounted/views'));
return new Content(
markdown: 'theme::mails.won-discount',
with: [
'first_name' => $this->recipient->name ?? $this->recipient->address,
'game_name' => $this->game_name,
'discount' => $this->discount,
'print_url' => $this->print_url
],
);
}
}