using vendorApproverBackend.Entities; namespace vendorApproverBackend.Interfaces; public interface IEmailService { Task SendOtpEmailAsync(string to, User user, string otpCode); Task SendSubAdminWelcomeEmailAsync(string to, User user, string password); Task SendEmployeeEmailAsync(string to, User user, string password); Task SendSubAdminEmailAsync(string to, User user, string password); Task SendOtpForgetPasswordAsync(string to, User user, string password); Task SendFactoryVisitVendorActionAsync(string to, User user); Task SendFactoryVisitAdminAlertAsync(string to, string vendorName, VisitRequest request); Task SendVisitRequestAcceptedAsync(string to, User user, VisitRequest request); Task SendVisitRequestRejectedAsync(string to, User user, string reason); Task SendVendorLetterSubmittedAsync(string to, User user, VendorRequestLetter letter); Task SendAdminNewLetterAlertAsync(string to, string vendorName, VendorRequestLetter letter); Task SendLetterAssignedToManagerAsync(string to, User manager, VendorRequestLetter letter); Task SendAdminProductManagerDecisionAsync(string to, LetterProducts product, VendorRequestLetter letter, bool approved); Task SendVendorProductAdminDecisionAsync(string to, User vendorUser, LetterProducts product, VendorRequestLetter letter, bool approved); Task SendAuditAssignmentNotificationAsync(string to, User auditor, RequestRenew request); Task SendAuditDeadlineReminderAsync(string to, User auditor, PrequalificationRequest request, int daysRemaining); Task SendManualPqReminderAsync(string to, PrequalificationRequest request, string? adminComment = null); }