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