package com.ejie.m62fb.dao.registroVPP;

import com.ejie.m62fb.model.AlojamientoDotacional;
import com.ejie.m62fb.model.ElementoAd;

/**
 * ElementoAdDao.
 * 
XXXX
 */
public interface ElementoAdDao {

	/**
	 * Finds a single row in the ElementoAd table.
	 * 
	 * @param elementoAd
	 *            ElementoAd
	 * @return ElementoAd
	 */
	ElementoAd find(ElementoAd elementoAd);

	/**
	 * Busca el elementoAd del alojamiento y el tipo dado. Si no se informa
	 * alguno de los dos datos no realiza la busqueda.
	 * 
	 * Solo deveria de devolver un unico registro, si no, falla
	 * 
	 * @param idAlojReg
	 *            Integer
	 * @param tipoElemento
	 *            String
	 * 
	 * @return ElementoAd
	 */
	ElementoAd findByIdAlojRegAndTipoElemento(Integer idAlojReg,
			String tipoElemento);

	/**
	 * Desvincula el elementoAd del TipoElemento dado para el Alojamiento
	 * 
	 * @param idAlojReg
	 *            Integer
	 * @param tipoElemento
	 *            String
	 */
	void desvincular(Integer idAlojReg, String tipoElemento);

	/**
	 * Vincula el elementoAd dado al Alojamiento
	 * 
	 * @param elementoAd
	 *            ElementoAd(idAlojReg)
	 * @param alojDot
	 *            AlojamientoDotacional(idAlojReg)
	 */
	void vincular(ElementoAd elementoAd, AlojamientoDotacional alojDot);
}
