Pozvánky pre viacerých
Parametrom maxUses premeníte pozvánku na fond miest — odkaz použiteľný najviac N-krát. null znamená bez limitu; predvolená hodnota je 1 (jednorazová):
$invite = Teams::for($team)->invites()->create(role: 'member', maxUses: 5);
// ... three people accept ...
$invite->consumedSeats(); // 3
$invite->remainingSeats(); // 2 (null when unlimited)
$invite->hasRemainingSeats(); // true
$invite->isExhausted(); // false
// Unlimited seats:
$link = Teams::for($team)->invites()->create(role: 'member', maxUses: null);| Metóda | Vracia | Význam |
|---|---|---|
consumedSeats() | int | Koľkokrát bola pozvánka prijatá (uses). |
remainingSeats() | ?int | max_uses − uses, nikdy menej ako 0; null pri neobmedzenom počte. |
hasRemainingSeats() | bool | True, ak je počet neobmedzený alebo zostáva aspoň jedno miesto. |
isExhausted() | bool | uses ≥ max_uses; pri neobmedzenom počte vždy false. |
acceptedMembers() / consumers() | HasMany<Member> | Členovia, ktorí sa pridali cez túto pozvánku. |
Evidencia miest
Každé prijatie zapíše do členstva accepted_invite_id, takže pozvánka presne vie, kto obsadil ktoré miesto. Zoznam je bežná relácia — môžete ho načítať cez eager loading aj stránkovať:
$invite->acceptedMembers; // Collection<Member> — who used a seat
$invite->consumers(); // readable alias of acceptedMembers()
$invite->acceptedMembers()->with('member')->paginate(20);
// From the member side:
$member->acceptedInvite; // the Invite this member joined through, or nullNatrvalo zmazaná alebo vyčistená pozvánka nastaví accepted_invite_id svojich členov na null namiesto ich zmazania, takže zoznam členov sa upratovaním pozvánok nikdy nestratí. Opätovné pridanie aktívneho člena nikdy neprepíše pozvánku, cez ktorú sa pôvodne pridal.
Prejavte lásku k open source
Tento balík je zadarmo pod licenciou MIT. Ak vám šetrí čas, jednorazový príspevok alebo členstvo na Patreone nám pomôže ho ďalej udržiavať, testovať a dokumentovať.
Ďalšie spôsoby podpory vrátane kryptomienOdoslaním daru súhlasíte s našimi podmienkami prijímania darov.
Chcete to zabudovať do svojho produktu?
Naše balíky integrujeme do zákazkových Laravel a AI riešení. Napíšte nám, na čom pracujete, a ozveme sa do 48 hodín.