<?php declare(strict_types=1); namespace App\User; use App\Entity\{Invite, User}; use App\Repository\InviteRepository; class InviteManager { public function __construct( private readonly InviteRepository $inviteRepo, private readonly int $newUserInvites = 0 ) { } /** * @return Invite[] */ public function createInvitesForUser(User $user, int $forceAmount = null): iterable { if (!in_array('ROLE_USER', $user->getRoles(), true)) { return []; } $amount = $forceAmount ?? $this->newUserInvites; $invites = []; for ($i = 0; $i < $amount; $i++) { $invite = new Invite($user); $this->inviteRepo->add($invite); $invites[] = $invite; } return $invites; } }