package com.airlock.iam.common.api.domain.service.email;

import com.airlock.iam.base.api.domain.model.email.EmailAddress;
import com.airlock.iam.base.api.domain.model.exception.FailureException;
import jakarta.mail.internet.AddressException;
import jakarta.mail.internet.InternetAddress;
import java.io.File;
import java.util.Collections;
import java.util.List;

public interface EmailService {
   void sendEmail(List<InternetAddress> var1, List<InternetAddress> var2, List<InternetAddress> var3, String var4, String var5, boolean var6) throws EmailServiceException;

   default void sendEmail(EmailAddress toAddress, String subject, String body, boolean sendAsHtml) throws EmailServiceException {
      try {
         this.sendEmail(List.of(new InternetAddress(toAddress.value())), Collections.emptyList(), Collections.emptyList(), subject, body, sendAsHtml);
      } catch (AddressException e) {
         throw new FailureException(e);
      }
   }

   void sendEmail(List<InternetAddress> var1, List<InternetAddress> var2, List<InternetAddress> var3, String var4, String var5, boolean var6, File var7) throws EmailServiceException;
}
