. */ declare(strict_types=1); namespace FireflyIII\Mail; use FireflyIII\Exceptions\FireflyException; use FireflyIII\Models\TransactionGroup; use FireflyIII\Transformers\TransactionGroupTransformer; use Illuminate\Bus\Queueable; use Illuminate\Mail\Mailable; use Illuminate\Queue\SerializesModels; use Illuminate\Support\Collection; /** * Class ReportNewJournalsMail. * * Sends a list of newly created journals to the user. * */ class ReportNewJournalsMail extends Mailable { use Queueable; use SerializesModels; public Collection $groups; public array $transformed; /** * ConfirmEmailChangeMail constructor. * * @param Collection $groups */ public function __construct(Collection $groups) { $this->groups = $groups; } /** * Build the message. * * @return $this */ public function build(): self { $this->transform(); return $this ->markdown('emails.report-new-journals') ->subject((string)trans_choice('email.new_journals_subject', $this->groups->count())); } /** * @return void * @throws FireflyException */ private function transform(): void { /** @var TransactionGroupTransformer $transformer */ $transformer = app(TransactionGroupTransformer::class); /** @var TransactionGroup $group */ foreach ($this->groups as $group) { $this->transformed[] = $transformer->transformObject($group); } } }