ldc-gen-game-web/app/Mail/Won/WinningProofSubmitedMail.php
2025-08-29 15:03:32 +02:00

69 lines
2 KiB
PHP

<?php
namespace App\Mail\Won;
use App\Models\Settings;
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 WinningProofSubmitedMail 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 \App\Models\Settings $settingsModel The game settings.
* @return void
*/
public function __construct(
protected Address $recipient,
protected Settings $settingsModel,
) {
// Keep empty.
}
/**
* Get the message envelope.
*
* @return \Illuminate\Mail\Mailables\Envelope
*/
public function envelope(): \Illuminate\Mail\Mailables\Envelope
{
return new Envelope(
to: [$this->recipient],
subject: trans('Nous avons recu vos preuves de gains'),
);
}
/**
* Get the message content definition.
*
* @return \Illuminate\Mail\Mailables\Content
*/
public function content(): \Illuminate\Mail\Mailables\Content
{
// * Fix for async usage
/** @var \App\Models\Tenant $tenantModel */
$tenantModel = $this->settingsModel->tenant;
/** @var string $themeName; */
$themeName = $tenantModel->theme;
View::addNamespace('theme', resource_path("theme/$themeName/views"));
return new Content(
markdown: 'theme::mails.submited-proof',
with: [
'first_name' => $this->recipient->name ?? $this->recipient->address,
'game_name' => $this->settingsModel->name,
'company' => $this->settingsModel->company,
],
);
}
}