package com.healthcare.ohctech.service.impl; import com.healthcare.ohctech.dto.DisposalAgencyDto; import com.healthcare.ohctech.entity.DisposalAgency; import com.healthcare.ohctech.repository.DisposalAgencyRepo; import com.healthcare.ohctech.service.DisposalAgencyService; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.stereotype.Service; import java.util.Optional; @Service public class DisposalAgencyServiceImpl implements DisposalAgencyService { private final DisposalAgencyRepo disposalAgencyRepo; public DisposalAgencyServiceImpl(DisposalAgencyRepo disposalAgencyRepo) { this.disposalAgencyRepo = disposalAgencyRepo; } @Override public DisposalAgency getDisposalAgencyById(Long id) { Optional agency = disposalAgencyRepo.findById(id); return agency.orElse(null); } @Override public Page getAllDisposalAgencies(Pageable pageable) { return disposalAgencyRepo.findAll(pageable); } @Override public void addDisposalAgency(DisposalAgencyDto disposalAgencyDto) { DisposalAgency agency = new DisposalAgency(); agency.setAgencyName(disposalAgencyDto.agencyName()); agency.setAgencyAddress(disposalAgencyDto.agencyAddress()); agency.setRegistrationNo(disposalAgencyDto.registrationNo()); agency.setAllocatedRegNo(disposalAgencyDto.allocatedRegNo()); agency.setHodName(disposalAgencyDto.hodName()); agency.setHodEmail(disposalAgencyDto.hodEmail()); disposalAgencyRepo.save(agency); } @Override public DisposalAgency updateDisposalAgency(DisposalAgencyDto disposalAgencyDto) { Optional optionalAgency = disposalAgencyRepo.findById(disposalAgencyDto.id()); if (optionalAgency.isPresent()) { DisposalAgency agency = optionalAgency.get(); agency.setAgencyName(disposalAgencyDto.agencyName()); agency.setAgencyAddress(disposalAgencyDto.agencyAddress()); agency.setRegistrationNo(disposalAgencyDto.registrationNo()); agency.setAllocatedRegNo(disposalAgencyDto.allocatedRegNo()); agency.setHodName(disposalAgencyDto.hodName()); agency.setHodEmail(disposalAgencyDto.hodEmail()); return disposalAgencyRepo.save(agency); } else { throw new RuntimeException("Disposal agency not found with ID: " + disposalAgencyDto.id()); } } @Override public void deleteDisposalAgency(Long id) { Optional optionalAgency = disposalAgencyRepo.findById(id); optionalAgency.ifPresent(disposalAgencyRepo::delete); } }