package com.healthcare.ohctech.service.impl; import com.healthcare.ohctech.dto.ReferralPointDto; import com.healthcare.ohctech.entity.ReferralPoint; import com.healthcare.ohctech.repository.ReferralPointRepo; import com.healthcare.ohctech.service.ReferralPointService; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.stereotype.Service; import java.util.Optional; @Service public class ReferralPointServiceImpl implements ReferralPointService { private final ReferralPointRepo referralPointRepo; public ReferralPointServiceImpl(ReferralPointRepo referralPointRepo) { this.referralPointRepo = referralPointRepo; } @Override public ReferralPoint getReferralPointById(Long referralPointId) { return referralPointRepo.findById(referralPointId) .orElseThrow(() -> new RuntimeException("Referral Point not found for ID: " + referralPointId)); } @Override public Page getAllReferralPoints(Pageable pageable) { return referralPointRepo.findAll(pageable); } @Override public void addReferralPoint(ReferralPointDto referralPointDto, Long userId) { ReferralPoint referralPoint = convertToEntity(new ReferralPoint(), referralPointDto); referralPoint.setModifiedBy(userId); referralPointRepo.save(referralPoint); } @Override public void updateReferralPoint(ReferralPointDto referralPointDto, Long userId) { Long referralPointId = referralPointDto.id(); ReferralPoint referralPoint = referralPointRepo.findById(referralPointId) .orElseThrow(() -> new RuntimeException("Referral Point not found for ID: " + referralPointId)); convertToEntity(referralPoint, referralPointDto); referralPoint.setModifiedBy(userId); referralPointRepo.save(referralPoint); } @Override public void deleteReferralPoint(Long referralPointId) { ReferralPoint referralPoint = referralPointRepo.findById(referralPointId) .orElseThrow(() -> new RuntimeException("Referral Point not found for ID: " + referralPointId)); referralPointRepo.delete(referralPoint); } private ReferralPoint convertToEntity(ReferralPoint referralPoint, ReferralPointDto referralPointDto) { referralPoint.setReferralPointName(referralPointDto.referralPointName()); referralPoint.setCity(referralPointDto.city()); referralPoint.setHospitalName(referralPointDto.hospitalName()); referralPoint.setAddress(referralPointDto.address()); referralPoint.setContactDetail(referralPointDto.contactDetail()); return referralPoint; } }