75 lines
3.4 KiB
Plaintext
75 lines
3.4 KiB
Plaintext
package com.healthcare.ohctech.service.impl;
|
|
|
|
import com.healthcare.ohctech.dto.TrainingScheduleDto;
|
|
import com.healthcare.ohctech.entity.TrainingMaster;
|
|
import com.healthcare.ohctech.entity.TrainingSchedule;
|
|
import com.healthcare.ohctech.repository.TrainingMasterRepo;
|
|
import com.healthcare.ohctech.repository.TrainingScheduleRepo;
|
|
import com.healthcare.ohctech.service.TrainingScheduleService;
|
|
import org.springframework.data.domain.Page;
|
|
import org.springframework.data.domain.Pageable;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
@Service
|
|
public class TrainingScheduleServiceImpl implements TrainingScheduleService {
|
|
|
|
private final TrainingScheduleRepo trainingScheduleRepo;
|
|
private final TrainingMasterRepo trainingMasterRepo;
|
|
|
|
public TrainingScheduleServiceImpl(TrainingScheduleRepo trainingScheduleRepo, TrainingMasterRepo trainingMasterRepo) {
|
|
this.trainingScheduleRepo = trainingScheduleRepo;
|
|
this.trainingMasterRepo = trainingMasterRepo;
|
|
}
|
|
|
|
@Override
|
|
public TrainingSchedule getTrainingScheduleById(Long scheduleId) {
|
|
return trainingScheduleRepo.findById(scheduleId)
|
|
.orElseThrow(() -> new RuntimeException("Training Schedule not found for ID: " + scheduleId));
|
|
}
|
|
|
|
@Override
|
|
public Page<TrainingSchedule> getAllTrainingSchedules(Pageable pageable) {
|
|
return trainingScheduleRepo.findAll(pageable);
|
|
}
|
|
|
|
@Override
|
|
public void addTrainingSchedule(TrainingScheduleDto trainingScheduleDto, Long userId) {
|
|
TrainingSchedule trainingSchedule = convertToEntity(new TrainingSchedule(), trainingScheduleDto);
|
|
trainingSchedule.setModifiedBy(userId);
|
|
trainingScheduleRepo.save(trainingSchedule);
|
|
}
|
|
|
|
@Override
|
|
public void updateTrainingSchedule(TrainingScheduleDto trainingScheduleDto, Long userId) {
|
|
Long scheduleId = trainingScheduleDto.id();
|
|
TrainingSchedule trainingSchedule = trainingScheduleRepo.findById(scheduleId)
|
|
.orElseThrow(() -> new RuntimeException("Training Schedule not found for ID: " + scheduleId));
|
|
|
|
convertToEntity(trainingSchedule, trainingScheduleDto);
|
|
trainingSchedule.setModifiedBy(userId);
|
|
trainingScheduleRepo.save(trainingSchedule);
|
|
}
|
|
|
|
@Override
|
|
public void deleteTrainingSchedule(Long scheduleId) {
|
|
TrainingSchedule trainingSchedule = trainingScheduleRepo.findById(scheduleId)
|
|
.orElseThrow(() -> new RuntimeException("Training Schedule not found for ID: " + scheduleId));
|
|
trainingScheduleRepo.delete(trainingSchedule);
|
|
}
|
|
|
|
private TrainingSchedule convertToEntity(TrainingSchedule trainingSchedule, TrainingScheduleDto trainingScheduleDto) {
|
|
trainingSchedule.setFromDate(trainingScheduleDto.fromDate());
|
|
trainingSchedule.setToDate(trainingScheduleDto.toDate());
|
|
trainingSchedule.setTrainerName(trainingScheduleDto.trainerName());
|
|
trainingSchedule.setLocation(trainingScheduleDto.location());
|
|
trainingSchedule.setRemarks(trainingScheduleDto.remarks());
|
|
trainingSchedule.setStatus(trainingScheduleDto.status());
|
|
|
|
TrainingMaster trainingMaster = trainingMasterRepo.findById(trainingScheduleDto.trainingId())
|
|
.orElseThrow(() -> new RuntimeException("Training Master not found for ID: " + trainingScheduleDto.trainingId()));
|
|
trainingSchedule.setTrainingMaster(trainingMaster);
|
|
|
|
return trainingSchedule;
|
|
}
|
|
}
|