52 lines
1.5 KiB
PHP
52 lines
1.5 KiB
PHP
<?php
|
|
|
|
namespace App\Domains\MailTest\Mailables;
|
|
|
|
use App\Domains\Tenant\Models\Tenant;
|
|
use Illuminate\Bus\Queueable;
|
|
use Illuminate\Mail\Mailable;
|
|
use Illuminate\Mail\Mailables\Content;
|
|
use Illuminate\Mail\Mailables\Envelope;
|
|
use Illuminate\Queue\SerializesModels;
|
|
|
|
class TestMail extends Mailable
|
|
{
|
|
use Queueable, SerializesModels;
|
|
|
|
public function __construct(
|
|
public readonly string $mailSubject,
|
|
public readonly string $mailMessage,
|
|
public readonly Tenant $tenant,
|
|
) {}
|
|
|
|
public function envelope(): Envelope
|
|
{
|
|
return new Envelope(subject: $this->mailSubject);
|
|
}
|
|
|
|
public function content(): Content
|
|
{
|
|
$this->tenant->loadMissing(['headerLogo', 'footerLogo']);
|
|
|
|
$branding = [
|
|
'name' => $this->tenant->nombre,
|
|
'primary_color' => $this->tenant->primary_color ?? '#6376f3',
|
|
'body_color' => '#334155',
|
|
'background_color' => '#f1f5f9',
|
|
'surface_color' => '#ffffff',
|
|
'header_bg_color' => $this->tenant->header_bg_color ?? '#ffffff',
|
|
'footer_bg_color' => $this->tenant->footer_bg_color ?? '#334155',
|
|
];
|
|
|
|
return new Content(
|
|
view: 'mail.test',
|
|
with: [
|
|
'tenant' => $this->tenant,
|
|
'branding' => $branding,
|
|
'headerLogoUrl' => $this->tenant->headerLogo?->getTemporaryUrl(1440),
|
|
'footerLogoUrl' => $this->tenant->footerLogo?->getTemporaryUrl(1440),
|
|
],
|
|
);
|
|
}
|
|
}
|