package com.healthcare.ohctech.service.impl; import com.healthcare.ohctech.dto.DesignationDto; import com.healthcare.ohctech.entity.Designation; import com.healthcare.ohctech.repository.DesignationRepo; import com.healthcare.ohctech.service.DesignationService; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.stereotype.Service; import java.util.Optional; @Service public class DesignationServiceImpl implements DesignationService { private final DesignationRepo designationRepo; public DesignationServiceImpl(DesignationRepo designationRepo) { this.designationRepo = designationRepo; } @Override public Designation getDesignationById(Long designationId) { return designationRepo.findById(designationId) .orElseThrow(() -> new RuntimeException("Designation not found for ID :" + designationId)); } @Override public Page getAllDesignations(Pageable pageable) { return designationRepo.findAll(pageable); } @Override public void addDesignation(DesignationDto designationDto) { Designation designation = new Designation(); designation.setDesignationName(designationDto.designationName()); designation.setDesignationCode(designationDto.designationCode()); designation.setDesignationDesc(designationDto.designationDesc()); designation.setDesignationCollar(designationDto.designationCollar()); designationRepo.save(designation); } @Override public void updateDesignation(DesignationDto designationDto) { Long designationId = designationDto.id(); Optional optionalDesignation = designationRepo.findById(designationId); if (optionalDesignation.isPresent()) { Designation designation = optionalDesignation.get(); designation.setDesignationName(designationDto.designationName()); designation.setDesignationCode(designationDto.designationCode()); designation.setDesignationDesc(designationDto.designationDesc()); designation.setDesignationCollar(designationDto.designationCollar()); designationRepo.save(designation); } else { throw new RuntimeException("Designation not found for ID: " + designationId); } } @Override public void deleteDesignation(Long designationId) { Optional optionalDesignation = designationRepo.findById(designationId); if (optionalDesignation.isPresent()) { Designation designation = optionalDesignation.get(); designationRepo.delete(designation); } else { throw new RuntimeException("Designation not found for ID: " + designationId); } } }