. */ declare(strict_types=1); namespace FireflyIII\Mail; 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. * * @codeCoverageIgnore */ class ReportNewJournalsMail extends Mailable { use Queueable, SerializesModels; public string $email; public Collection $groups; public string $ipAddress; public array $transformed; /** * ConfirmEmailChangeMail constructor. * * @param string $email * @param string $ipAddress * @param Collection $groups */ public function __construct(string $email, string $ipAddress, Collection $groups) { $this->email = $email; $this->ipAddress = $ipAddress; $this->groups = $groups; } /** * Build the message. * * @return $this */ public function build(): self { $this->transform(); return $this->view('emails.report-new-journals-html')->text('emails.report-new-journals-text') ->subject((string)trans_choice('email.new_journals_subject', $this->groups->count())); } private function transform(): void { /** @var TransactionGroupTransformer $transformer */ $transformer = app(TransactionGroupTransformer::class); /** @var TransactionGroup $group */ foreach ($this->groups as $group) { $this->transformed[] = $transformer->transformObject($group); } } }