package com.mfsys.uco.service; import com.mfsys.uco.dto.UpdateProfileRequestPayload; import com.mfsys.uco.exception.BenificiaryAlreadyExistsException; import com.mfsys.uco.model.Beneficiary; import com.mfsys.uco.model.CustomerProfile; import com.mfsys.uco.model.CustomerProfileId; import com.mfsys.uco.repository.BeneficiaryRepository; import com.mfsys.uco.repository.CustomerProfileRepository; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import java.util.List; import java.util.Optional; @Service @RequiredArgsConstructor public class CustomerProfileService { private final CustomerProfileRepository customerProfileRepository; private final BeneficiaryRepository beneficiaryRepository; public void deleteBeneficiary(String porOrgacode, String email, String mbmBkmsnumberRef) { beneficiaryRepository.deleteByMbmBkmsnumberRefAndPorOrgacodeAndEmail(mbmBkmsnumberRef, porOrgacode, email); } public CustomerProfile fetchCustcodeBasedOnEmail(String porOrgacode, String email) { return customerProfileRepository.findbyEmail(porOrgacode, email); } public void updateCustomerProfile(UpdateProfileRequestPayload updateProfileRequestPayload) { customerProfileRepository.findById(new CustomerProfileId(updateProfileRequestPayload.getPorOrgacode(), updateProfileRequestPayload.getCmpCustcode())) .ifPresent(customerProfile -> { customerProfile.setCmpCustImage(updateProfileRequestPayload.getCmpCustImage()); customerProfileRepository.save(customerProfile); }); } public void addBeneficiary(Beneficiary beneficiary) { Optional existing = beneficiaryRepository.findBeneficiaryByEmailAndPorOrgacodeAndMbmBkmsnumberRef(beneficiary.getEmail(),beneficiary.getPorOrgacode(), beneficiary.getMbmBkmsnumberRef()); if(existing.isPresent()){ throw new BenificiaryAlreadyExistsException(); } beneficiaryRepository.save(beneficiary); } public List fetchBeneficiaryBasedOnEmail(String porOrgacode, String email) { return beneficiaryRepository.findBeneficiariesByEmailAndPorOrgacode(email,porOrgacode); } }