package com.hepl.tunefortwo.service.impl;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;

import com.hepl.tunefortwo.dto.ContactDto;
import com.hepl.tunefortwo.entity.Contact;
import com.hepl.tunefortwo.repository.ContactRepository;
import com.hepl.tunefortwo.service.ContactService;
import com.hepl.tunefortwo.service.MailService;
import com.hepl.tunefortwo.service.TemplateService;

import jakarta.mail.MessagingException;
import lombok.extern.slf4j.Slf4j;

@Service
@Slf4j
public class ContactServiceImp implements ContactService{

	@Value("${adminMail.contact}")
	private String adminMmailId;
	
	private final ContactRepository contactRepository;
	private final MailService mailService;
	private final TemplateService templateService;
	
	public ContactServiceImp(ContactRepository contactRepository, MailService mailService, TemplateService templateService) {
		this.contactRepository = contactRepository;
		this.mailService = mailService ; 
		this.templateService = templateService ;
	}
	
	@Override
	public Contact saveContact(Contact contactDetails) throws MessagingException {
		
		mailService.sendMailByTemplate(templateService.getContactupTemplate(contactDetails),adminMmailId, "New Contact Information");
		return contactRepository.save(contactDetails);
	}

}
