package com.jasamedika.medifirst2000.service.impl;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;

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

import com.jasamedika.medifirst2000.converter.BaseConverterImpl;
import com.jasamedika.medifirst2000.dao.DetailAlasanPemindahanPasienDao;
import com.jasamedika.medifirst2000.entities.AlasanPemindahanPasien;
import com.jasamedika.medifirst2000.entities.DetailAlasanPemindahanPasien;
import com.jasamedika.medifirst2000.entities.TransferPasienInternal;
import com.jasamedika.medifirst2000.service.DetailAlasanPemindahanPasienService;
import com.jasamedika.medifirst2000.vo.AlasanPemindahanPasienVO;
import com.jasamedika.medifirst2000.vo.DetailAlasanPemindahanPasienVO;
import com.jasamedika.medifirst2000.vo.TransferPasienAlasanPindahPasienVO;
import com.jasamedika.medifirst2000.vo.TransferPasienInternalVO;


/**
 * Implement class for PasienService
 * 
 * @author Adik
 * @param <T>
 */


@Service("detailAlasanPemindahanPasienService")
public class DetailAlasanPemindahanPasienServiceImpl extends BaseVoServiceImpl implements DetailAlasanPemindahanPasienService {

	@Autowired
	private DetailAlasanPemindahanPasienDao detailAlasanPemindahanPasienDao;
	
	@Autowired
	private BaseConverterImpl<DetailAlasanPemindahanPasienVO,DetailAlasanPemindahanPasien> detailAlasanPemindahanPasienConverter;
	
	@Autowired
	private BaseConverterImpl<TransferPasienInternalVO,TransferPasienInternal> transferPasienInternalConverter;
	
	@Autowired
	private BaseConverterImpl<AlasanPemindahanPasienVO,AlasanPemindahanPasien> alasanPemindahanPasienConverter;

	@Override
	@Transactional(readOnly=false)
	public Map<String, Object> saveDetailAlasanPemindahanPasien(TransferPasienAlasanPindahPasienVO vo) {
		ArrayList<String> resultStringArray = new ArrayList<String>();
		for(DetailAlasanPemindahanPasienVO detailAlasanPemindahanPasienVO:vo.getDetailAlasanPemindahanPasien()){
			resultStringArray.add(detailAlasanPemindahanPasienVO.getAlasanPemindahanPasien().getId().toString());
			DetailAlasanPemindahanPasien model=new DetailAlasanPemindahanPasien();
			model=detailAlasanPemindahanPasienConverter.transferVOToModel(detailAlasanPemindahanPasienVO, new DetailAlasanPemindahanPasien());
			model.setAlasanPemindahanPasien(alasanPemindahanPasienConverter.transferVOToModel(detailAlasanPemindahanPasienVO.getAlasanPemindahanPasien(),new AlasanPemindahanPasien()));
			model.setTransferPasienInternal(transferPasienInternalConverter.transferVOToModel(vo.getTransferPasienInternal(), new TransferPasienInternal()));
			detailAlasanPemindahanPasienDao.save(model);
		}
		Map<String,Object>result=new HashMap<String,Object>();
		result.put("result", resultStringArray);
		return result;
	}
	
	


	


}
