Files
InvoiceShelf/app/Domains/Receivables/Mail/SendPaymentMail.php
T
Darko Gjorgjijoski 5ef7804e60 refactor: adopt modular domain architecture (#747)
* refactor: stabilize model identities for domain migration

* refactor: extract module platform context

* refactor: assign models to domain contexts

* refactor: extract ai platform context

* refactor: extract storage platform context

* refactor: extract mail platform context

* refactor: extract pdf platform context

* refactor: extract operations platform context

* refactor: move installation into operations platform

* refactor: extract money domain context

* refactor: extract taxation domain context

* refactor: extract catalog domain context

* refactor: extract metadata domain context

* refactor: extract reporting domain context

* refactor: extract purchases domain context

* refactor: extract receivables domain context

* refactor: extract accounts domain context

* refactor: complete reporting statement boundary

* refactor: extract contacts domain context

* refactor: extract sales domain context

* refactor: remove legacy application layers

* fix: migrate legacy bouncer role identities
2026-08-05 17:40:03 +02:00

61 lines
1.5 KiB
PHP

<?php
namespace App\Domains\Receivables\Mail;
use App\Domains\Receivables\Models\Payment;
use App\Platform\Mail\Contracts\EmailLogWriter;
use Illuminate\Bus\Queueable;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
class SendPaymentMail extends Mailable
{
use Queueable;
use SerializesModels;
public $data = [];
/**
* Create a new message instance.
*
* @return void
*/
public function __construct($data)
{
$this->data = $data;
}
/**
* Build the message.
*
* @return $this
*/
public function build()
{
$payment = Payment::findOrFail($this->data['payment']['id']);
$token = app(EmailLogWriter::class)->record($payment, [
'from' => $this->data['from'],
'to' => $this->data['to'],
'cc' => $this->data['cc'] ?? null,
'bcc' => $this->data['bcc'] ?? null,
'subject' => $this->data['subject'],
'body' => $this->data['body'],
]);
$this->data['url'] = route('payment', ['email_log' => $token]);
$mailContent = $this->from($this->data['from'], config('mail.from.name'))
->subject($this->data['subject'])
->markdown('emails.send.payment', ['data', $this->data]);
if ($this->data['attach']['data']) {
$mailContent->attachData(
$this->data['attach']['data']->output(),
$this->data['payment']['payment_number'].'.pdf'
);
}
return $mailContent;
}
}