package com.jasamedika.medifirst2000.service.impl;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.jasamedika.medifirst2000.converter.DepartemenConverter;
import com.jasamedika.medifirst2000.converter.JabatanConverter;
import com.jasamedika.medifirst2000.converter.KelompokEvaluasiConverter;
import com.jasamedika.medifirst2000.converter.KomponenEvaluasiConverter;
import com.jasamedika.medifirst2000.converter.SatuanHasilConverter;
import com.jasamedika.medifirst2000.dao.KelompokEvaluasiDao;
import com.jasamedika.medifirst2000.entities.Departemen;
import com.jasamedika.medifirst2000.entities.KelompokEvaluasi;
import com.jasamedika.medifirst2000.service.KelompokEvaluasiService;
import com.jasamedika.medifirst2000.util.CommonUtil;
import com.jasamedika.medifirst2000.vo.KelompokEvaluasiVO;

@Service("KelompokEvaluasiService")
public class KelompokEvaluasiServiceImpl implements KelompokEvaluasiService{

	@Autowired
	private KelompokEvaluasiDao kelompokEvaluasiDao;

	@Autowired
	public KomponenEvaluasiConverter komponenEvaluasiConverter;
	
	@Autowired
	public DepartemenConverter departemenConverter;
	
	@Autowired
	public JabatanConverter jabatanConverter;
	
	@Autowired
	public KelompokEvaluasiConverter kelompokEvaluasiConverter;

	@Autowired
	public SatuanHasilConverter satuanHasilConverter;
	
	@Override
	public List<KelompokEvaluasi> findAllKelompokEvaluasi() {
		 
		return (List<KelompokEvaluasi>) kelompokEvaluasiDao.findAll();
	}

	@Override
	public KelompokEvaluasi findByIdKomponenEvaluasi(Integer id) {
		 
		return kelompokEvaluasiDao.findByIdKelompokEvaluasi(id);
	}

	@Override
	public KelompokEvaluasiVO add(KelompokEvaluasiVO vo) {
		KelompokEvaluasi kelompokEvaluasi= kelompokEvaluasiConverter.transferVOToModel(vo, new KelompokEvaluasi()) ;
		
		if(CommonUtil.isNotNullOrEmpty(vo.getDepartemen())){
			kelompokEvaluasi.setDepartemen(departemenConverter.transferVOToModel(vo.getDepartemen(), new Departemen()));
		}
		 
		
		kelompokEvaluasiDao.save(kelompokEvaluasi);
		
		
		return kelompokEvaluasiConverter.transferModelToVO(kelompokEvaluasi, new KelompokEvaluasiVO());
	}

	@Override
	public KelompokEvaluasiVO update(KelompokEvaluasiVO vo) {
		return null;
	}

	@Override
	public boolean delete(Integer id) {
		return false;
	}

	@Override
	public KelompokEvaluasi findById(Integer id) {
		 return kelompokEvaluasiDao.findByIdKelompokEvaluasi(id);
	}

	@Override
	public List<KelompokEvaluasi> findAll() {
		 	return (List<KelompokEvaluasi>) kelompokEvaluasiDao.findAll();
	}

 

	


}
