package com.healthcare.ohctech.service.impl; import com.healthcare.ohctech.dto.ReferralPointDto; import com.healthcare.ohctech.entity.OhcType; import com.healthcare.ohctech.entity.ReferralPoint; import com.healthcare.ohctech.repository.OhcTypeRepo; 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.time.LocalDateTime; 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) { ReferralPoint referralPoint = new ReferralPoint(); referralPoint.setReferralPointName(referralPointDto.referralPointName()); referralPoint.setCity(referralPointDto.city()); referralPoint.setHospitalName(referralPointDto.hospitalName()); referralPoint.setAddress(referralPointDto.address()); referralPoint.setContactDetail(referralPointDto.contactDetail()); referralPointRepo.save(referralPoint); } @Override public void updateReferralPoint(ReferralPointDto referralPointDto) { Long referralPointId = referralPointDto.id(); Optional optionalReferralPoint = referralPointRepo.findById(referralPointId); if (optionalReferralPoint.isPresent()) { ReferralPoint referralPoint = optionalReferralPoint.get(); referralPoint.setReferralPointName(referralPointDto.referralPointName()); referralPoint.setCity(referralPointDto.city()); referralPoint.setHospitalName(referralPointDto.hospitalName()); referralPoint.setAddress(referralPointDto.address()); referralPoint.setContactDetail(referralPointDto.contactDetail()); referralPointRepo.save(referralPoint); } else { throw new RuntimeException("Referral Point not found for ID: " + referralPointId); } } @Override public void deleteReferralPoint(Long referralPointId) { Optional optionalReferralPoint = referralPointRepo.findById(referralPointId); if (optionalReferralPoint.isPresent()) { ReferralPoint referralPoint = optionalReferralPoint.get(); referralPointRepo.delete(referralPoint); } else { throw new RuntimeException("Referral Point not found for ID: " + referralPointId); } } }