46 lines
1.8 KiB
C#
46 lines
1.8 KiB
C#
namespace Koogle.Application.Interfaces
|
|
{
|
|
/// <summary>
|
|
/// Service interface for email notifications.
|
|
/// </summary>
|
|
public interface IEmailService
|
|
{
|
|
/// <summary>
|
|
/// Sends notification to club admins about a new membership request.
|
|
/// </summary>
|
|
/// <param name="clubId">The club receiving the membership request.</param>
|
|
/// <param name="userDisplayName">Display name of the requesting user.</param>
|
|
/// <param name="userEmail">Email of the requesting user.</param>
|
|
/// <param name="ct">Cancellation token.</param>
|
|
Task SendMembershipRequestNotificationAsync(
|
|
Guid clubId,
|
|
string userDisplayName,
|
|
string userEmail,
|
|
CancellationToken ct = default);
|
|
|
|
/// <summary>
|
|
/// Sends notification to user that their membership was approved.
|
|
/// </summary>
|
|
/// <param name="userEmail">Email of the approved user.</param>
|
|
/// <param name="clubName">Name of the club.</param>
|
|
/// <param name="ct">Cancellation token.</param>
|
|
Task SendMembershipApprovedAsync(
|
|
string userEmail,
|
|
string clubName,
|
|
CancellationToken ct = default);
|
|
|
|
/// <summary>
|
|
/// Sends notification to user that their membership was rejected.
|
|
/// </summary>
|
|
/// <param name="userEmail">Email of the rejected user.</param>
|
|
/// <param name="clubName">Name of the club.</param>
|
|
/// <param name="reason">Optional rejection reason.</param>
|
|
/// <param name="ct">Cancellation token.</param>
|
|
Task SendMembershipRejectedAsync(
|
|
string userEmail,
|
|
string clubName,
|
|
string? reason,
|
|
CancellationToken ct = default);
|
|
}
|
|
}
|