magnetico-web/src/User/InviteManager.php

40 lines
817 B
PHP

<?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;
}
}