package com.jasamedika.medifirst2000.service.impl;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.orm.jpa.JpaSystemException;
import org.springframework.stereotype.Service;

import com.jasamedika.medifirst2000.converter.TingkatKelulusanConverter;
import com.jasamedika.medifirst2000.dao.TingkatKelulusanDao;
import com.jasamedika.medifirst2000.entities.TingkatKelulusan;
import com.jasamedika.medifirst2000.exception.ServiceVOException;
import com.jasamedika.medifirst2000.service.TingkatKelulusanService;
import com.jasamedika.medifirst2000.vo.TingkatKelulusanVO;

@Service("tingkatKelulusanService")
public class TingkatKelulusanServiceImpl implements TingkatKelulusanService{
	
	@Autowired
	private TingkatKelulusanConverter tingkatKelulusanConverter;
	
	@Autowired
	private TingkatKelulusanDao tingkatKelulusanDao;

	@Override
	public TingkatKelulusanVO add(TingkatKelulusanVO vo) throws JpaSystemException, ServiceVOException {
		TingkatKelulusan result = tingkatKelulusanConverter.transferVOToModel(vo, new TingkatKelulusan());
		TingkatKelulusan resultModel=tingkatKelulusanDao.save(result);
		TingkatKelulusanVO resultVo=new TingkatKelulusanVO();
		resultVo=tingkatKelulusanConverter.transferModelToVO(resultModel, resultVo);
		return resultVo;
	}

	@Override
	public TingkatKelulusanVO update(TingkatKelulusanVO vo) throws JpaSystemException, ServiceVOException {
		return null;
	}

	@Override
	public Boolean delete(String key) throws JpaSystemException {
		return null;
	}

	@Override
	public TingkatKelulusanVO findById(String key) throws JpaSystemException {
		return null;
	}

	@Override
	public List<TingkatKelulusanVO> findAll() throws JpaSystemException {
		List<TingkatKelulusan> resultList = (List<TingkatKelulusan>) tingkatKelulusanDao.findAll();

		List<TingkatKelulusanVO> resultVOList = new ArrayList<TingkatKelulusanVO>();
		for (TingkatKelulusan tingkatKelulusan : resultList) {
			TingkatKelulusanVO vo = new TingkatKelulusanVO();
			vo=tingkatKelulusanConverter.transferModelToVO(tingkatKelulusan, vo);
			resultVOList.add(vo);
			
		}
		
		return resultVOList;
	}

	@Override
	public Map<String, Object> findAllWithPageAndLimitAndSortByAndDirectionParameter(Integer page, Integer limit,
			String sort, String dir) {
		return null;
	}

	

	
}
