package com.ejie.ab79.dao.propuestaSancion;

import java.util.List;

import com.ejie.ab79.model.propuestaSancion.EstadosProSan;
import com.ejie.ab79.model.propuestaSancion.PropuestaSancion;
import com.ejie.x38.dto.TableRequestDto;

/**
 * 
 *  
 *
 */

public interface PropuestaSancionDao {

	/**
	 * inserta una fila en la tabla propuestaSacion
	 *
	 * @param propuestaSancion
	 *            PropuestaSancion
	 * 
	 * @return PropuestaSancion
	 */
	PropuestaSancion addPropuesta(PropuestaSancion propuestaSancion);

	/**
	 * Elimina una fila en la tabla propuestaSancion
	 * 
	 * @param propuestaSancion
	 *            PropuestaSancion
	 * @return void
	 */
	void deletePropuesta(PropuestaSancion propuestaSancion);

	/**
	 * busca una propuesta de sancion
	 * 
	 * @param propuestaSancion
	 *            PropuestaSancion
	 * @return void
	 */
	PropuestaSancion find(PropuestaSancion propuestaSancion);

	List<PropuestaSancion> findAll(PropuestaSancion propuestaSancion, TableRequestDto tableRequestDto);

	/**
	 * 
	 * @param filterPropuesta
	 *            PropuestaSancion
	 */
	void updatePropuesta(PropuestaSancion filterPropuesta);

	/**
	 * 
	 * @param propuestaSancion
	 *            PropuestaSancion
	 * 
	 * @return PropuestaSancion
	 */
	PropuestaSancion findByInspeccion(PropuestaSancion propuestaSancion);

	/**
	 * Buscar la descripción del estado de una propuesta
	 *
	 * @param idPropuestaRemoto
	 *            Integer
	 * @return String
	 */
	EstadosProSan findDescEstadoPropuesta(Integer idPropuestaRemoto);

	/**
	 * Buscar el estado de la propuesta de una inspección
	 *
	 * @param idInspeccion
	 *            Integer
	 * @return Integer
	 */
	Integer comprobarEstadoPropuesta(Integer idInspeccion);
}
