69 lines
2 KiB
PHP
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,
|
|
],
|
|
);
|
|
}
|
|
}
|