package net.gepafin.tendermanagement.service.impl; import lombok.extern.slf4j.Slf4j; import net.gepafin.tendermanagement.model.request.EmailConfig; import net.gepafin.tendermanagement.model.request.PecEmailRequest; import net.gepafin.tendermanagement.service.feignClient.PecFeignClient; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Service; import java.util.List; @Slf4j @Service public class PecEmailService implements EmailService { private final PecFeignClient pecFeignClient; public PecEmailService(PecFeignClient pecFeignClient) { this.pecFeignClient = pecFeignClient; } @Override public void sendEmail(String subject, String body, List recipientEmails, EmailConfig emailConfig) { PecEmailRequest emailRequest = new PecEmailRequest(); emailRequest.setSender(emailConfig.getSender()); emailRequest.setRecipient(recipientEmails); emailRequest.setSubject(subject); emailRequest.setBody(body); emailRequest.setUsername(emailConfig.getUsername()); emailRequest.setPassword(emailConfig.getPassword()); String authToken = emailConfig.getAuthToken(); ResponseEntity response = pecFeignClient.sendEmail("Bearer " + authToken, emailRequest); log.info("Mail response status: {}, headers: {}, body: {}", response.getStatusCode(), response.getHeaders(), response.getBody()); if (!response.getStatusCode().is2xxSuccessful()) { throw new RuntimeException("Failed to send email via PEC: " + response.getStatusCode()); } } }