shoc-backend/SeaHaven.Services/Interfaces/ITeamMemberInviteService.cs

23 lines
862 B
C#

using System.Security.Claims;
using SeaHaven.Services.DTOs;
namespace SeaHaven.Services.Interfaces;
public interface ITeamMemberInviteService
{
/// <summary>Persists a new invite for a pending member and returns its raw token.</summary>
Task<IssuedTeamMemberInvite> CreateAsync(string userId, CancellationToken cancellationToken);
/// <summary>Emails the invite link. Returns false when the email could not be handed off.</summary>
Task<bool> SendAsync(
IssuedTeamMemberInvite invite,
string email,
string name,
CancellationToken cancellationToken);
/// <summary>Admin-only: revokes a pending member's open invites and emails a new one.</summary>
Task<TeamMemberInviteResendOutcomeDTO> ResendAsync(
string userId,
ClaimsPrincipal caller,
CancellationToken cancellationToken);
}