namespace ColaFlow.Modules.Identity.Application.Services;

/// <summary>
/// Service for rendering email templates
/// </summary>
public interface IEmailTemplateService
{
    /// <summary>
    /// Renders a verification email template
    /// </summary>
    /// <param name="recipientName">Name of the recipient</param>
    /// <param name="verificationUrl">URL for email verification</param>
    /// <returns>HTML email body</returns>
    string RenderVerificationEmail(string recipientName, string verificationUrl);

    /// <summary>
    /// Renders a password reset email template
    /// </summary>
    /// <param name="recipientName">Name of the recipient</param>
    /// <param name="resetUrl">URL for password reset</param>
    /// <returns>HTML email body</returns>
    string RenderPasswordResetEmail(string recipientName, string resetUrl);

    /// <summary>
    /// Renders a tenant invitation email template
    /// </summary>
    /// <param name="recipientName">Name of the recipient</param>
    /// <param name="tenantName">Name of the tenant</param>
    /// <param name="inviterName">Name of the person who sent the invitation</param>
    /// <param name="invitationUrl">URL for accepting the invitation</param>
    /// <returns>HTML email body</returns>
    string RenderInvitationEmail(
        string recipientName,
        string tenantName,
        string inviterName,
        string invitationUrl);
}
