package com.jasamedika.medifirst2000.dao;

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

import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.PagingAndSortingRepository;
import org.springframework.data.repository.query.Param;

import com.jasamedika.medifirst2000.entities.GolonganPegawai;
import com.jasamedika.medifirst2000.entities.Pangkat;

public interface PangkatDao extends PagingAndSortingRepository<Pangkat, Integer> {

	@Query("select new Map (pang.id as id,pang.namaPangkat as namaPangkat, gol.id as idGolongan, gol.golonganPegawai as golonganPegawai) "
			+ "from Pangkat pang " + "inner join pang.kdGolonganPegawai gol "
			+ "where pang.statusEnabled is true and gol.statusEnabled is true")
	public List<Map<String, Object>> getPangkatGolongan();

	@Query("select new Map (pang.id as idPangkat,pang.namaPangkat as namaPangkat,gol.id as idGolongan,gol.golonganPegawai as golonganPegawai) "
			+ "from Pangkat pang " + "inner join pang.kdGolonganPegawai gol "
			+ "where pang.statusEnabled is true and gol.statusEnabled is true " + "and pang.id = :idPangkat")
	public Map<String, Object> getGolonganByPangkat(@Param("idPangkat") Integer idPangkat);

	@Query("select new Map(model.id as id, model.namaPangkat as namaPangkat, model.golonganPegawaiId as golonganPegawaiId) from Pangkat model where model.id = :pangkatId and model.statusEnabled is true")
	public Map<String, Object> getPangkatById(@Param("pangkatId") Integer pangkatId);

	@Query("select pgkt.kdGolonganPegawai from Pangkat pgkt where pgkt.id = :pangkatId and pgkt.statusEnabled is true")
	public GolonganPegawai getGolonganAssociate(@Param("pangkatId") Integer idPangkat);

}
