package com.avitam.bankloanapplication.mail;

import com.avitam.bankloanapplication.model.entity.LoanApplication;
import jakarta.mail.MessagingException;
import jakarta.mail.internet.MimeMessage;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.io.ByteArrayResource;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.stereotype.Service;

@Service
public class EmailSenderService {

    private final String fromEmailId = "rainavignesh47@gmail.com";

    @Autowired
    private JavaMailSender mailSender;


    public void sendLoanApprovalMailWithPdf(String toEmail, String customerName, LoanApplication loanApplication) {

    }


    public void sendEmailWithPdf(String toEmail, byte[] pdfData, String fileName) {
        try {
            MimeMessage message = mailSender.createMimeMessage();
            MimeMessageHelper helper = new MimeMessageHelper(message, true);

            helper.setFrom(fromEmailId);
            helper.setTo(toEmail);
            helper.setSubject("Loan Approved - PDF Attached");
            helper.setText("Dear Customer,\n\nYour loan has been approved. Please find the attached approval PDF.\n\nThank you.", false);

            helper.addAttachment(fileName, new ByteArrayResource(pdfData), "application/pdf");

            mailSender.send(message);
            System.out.println("Email sent to: " + toEmail);

        } catch (MessagingException e) {
            System.err.println("Failed to send email to: " + toEmail);
            e.printStackTrace();
            throw new RuntimeException("Error sending email to " + toEmail, e);
        }
    }
}
