Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
n/a
0 / 0
n/a
0 / 0
CRAP
n/a
0 / 0
1<?php
2
3declare(strict_types=1);
4
5namespace App\Trip\Domain;
6
7use App\Trip\Domain\ValueObject\InvitationId;
8use App\Trip\Domain\ValueObject\MemberId;
9use App\Trip\Domain\ValueObject\TripId;
10
11interface TripInvitationRepository
12{
13    public function save(TripInvitation $invitation): void;
14
15    public function remove(TripInvitation $invitation): void;
16
17    public function ofId(InvitationId $id): ?TripInvitation;
18
19    /** The pending invitation for this invitee on this trip, if any (double-invite guard). */
20    public function pendingFor(TripId $tripId, MemberId $inviteeId): ?TripInvitation;
21
22    /** @return list<TripInvitation> pending invitations on the trip (owner's members panel) */
23    public function pendingOfTrip(TripId $tripId): array;
24
25    /** @return list<TripInvitation> pending invitations received by the user (their inbox) */
26    public function pendingOfInvitee(MemberId $inviteeId): array;
27}