package it.micegroup.gestioneferie.pianificazioneferie.service;

import it.micegroup.gestioneferie.pianificazioneferie.entity.DrichPianifFerieAmmto;
import it.micegroup.gestioneferie.pianificazioneferie.criteria.DrichPianifFerieAmmtoCriteria;

import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import it.micegroup.gestioneferie.pianificazioneferie.entity.DrichPianifFerieAmmtoKey;

import it.micegroup.gestioneferie.pianificazioneferie.entity.DstatiRichiestaPfAmmto;
import it.micegroup.gestioneferie.pianificazioneferie.entity.DpianificFerieAmmto;
import it.micegroup.gestioneferie.pianificazioneferie.entity.DstatiRichiestaPfAmmtoKey;

import it.micegroup.gestioneferie.pianificazioneferie.entity.DpianificFerieAmmtoKey;
import it.micegroup.gestioneferie.libs.service.BaseEntityService;
import it.micegroup.voila2runtime.exception.BusinessException;

public interface DrichPianifFerieAmmtoService
		extends BaseEntityService<DrichPianifFerieAmmto, DrichPianifFerieAmmtoKey, DrichPianifFerieAmmtoCriteria> {

	// PARENT-SPECIFIC SERVICES
	Page<DrichPianifFerieAmmto> findByTheDstatiRichiestaPfAmmto(DstatiRichiestaPfAmmto parentEntity, Pageable pageable);

	Page<DrichPianifFerieAmmto> findByTheDpianificFerieAmmto(DpianificFerieAmmto parentEntity, Pageable pageable);

	/**
	 * Return a list of DstatiRichiestaPfAmmto from all DrichPianifFerieAmmto with
	 * given theDstatiRichiestaPfAmmto
	 *
	 * @param dpianificFerieAmmto
	 * @param pageable
	 * @return list of DstatiRichiestaPfAmmto from all DrichPianifFerieAmmto with
	 *         given TheDstatiRichiestaPfAmmto
	 */
	Page<DstatiRichiestaPfAmmto> findDstatiRichiestaPfAmmtoByTheDpianificFerieAmmto(
			DpianificFerieAmmto dpianificFerieAmmto, Pageable pageable);

	/**
	 * Return a list of DpianificFerieAmmto from all DrichPianifFerieAmmto with
	 * given theDpianificFerieAmmto
	 *
	 * @param dstatiRichiestaPfAmmto
	 * @param pageable
	 * @return list of DpianificFerieAmmto from all DrichPianifFerieAmmto with given
	 *         TheDpianificFerieAmmto
	 */
	Page<DpianificFerieAmmto> findDpianificFerieAmmtoByTheDstatiRichiestaPfAmmto(
			DstatiRichiestaPfAmmto dstatiRichiestaPfAmmto, Pageable pageable);

	DrichPianifFerieAmmto bulkUpdate(DrichPianifFerieAmmto drichPianifFerieAmmto);

}
