profileShare

rasmusjy / splitapp-backend-clean-onion

Read-only snapshot

No repository description.

main default branch 429 files Expires Sep 13, 2026, 9:06 AM
IInvitationService.cs 1,102 bytes
1 using App.BLL.DTO;
2 using App.Domain;
3
4 namespace App.BLL.Services;
5
6 public interface IInvitationService
7 {
8 Task<TripInvitationBllDto> CreateInvitationAsync(Guid tripId, Guid userId);
9 Task<bool> AcceptInvitationAsync(string token, Guid userId);
10
11 // Guarded variant: also checks organizer
12 Task<(TripInvitationBllDto? invitation, string? errorCode)> CreateInvitationGuardedAsync(Guid tripId, Guid userId);
13
14 // Lookups
15 Task<TripInvitationBllDto?> GetByIdAsync(Guid id);
16 Task<TripInvitationBllDto?> GetByTokenAsync(string token);
17 Task<List<TripInvitationBllDto>> GetPendingByTripIdAsync(Guid tripId, Guid userId);
18
19 // Accept: full guarded flow (API)
20 Task<(bool success, string? errorCode)> AcceptInvitationGuardedAsync(string token, Guid userId);
21
22 // Revoke & Decline
23 Task<(bool success, string? errorCode)> RevokeInvitationAsync(Guid invitationId, Guid tripId, Guid userId);
24 Task<(bool success, string? errorCode)> RevokeInvitationByTokenAsync(string token, Guid userId);
25 Task<(bool success, string? errorCode)> DeclineInvitationAsync(string token);
26 }
27