. */ 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 array $transformed; /** * ConfirmEmailChangeMail constructor. */ public function __construct(public Collection $groups) {} /** * Build the message. * * @return $this * * @throws FireflyException */ public function build(): self { $this->transform(); return $this ->markdown('emails.report-new-journals') ->subject(trans_choice('email.new_journals_subject', $this->groups->count())) ; } /** * @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); } } }