package com.ejie.ab39a.service;

import com.ejie.x38.dto.JQGridRequestDto;
import com.ejie.x38.dto.JQGridResponseDto;
import java.util.List;

import com.ejie.ab39a.model.TecnicosEntidad;

/**
 * TecnicosEntidad.
 * 
 *  
 */

public interface TecnicosEntidadService {

    /**
     * Inserts a single row in the TecnicosEntidad table.
     *
     * @param tecnicosEntidad
     *            TecnicosEntidad tecnicosEntidad
     * @return TecnicosEntidad tecnicosEntidad
     */
    TecnicosEntidad add(TecnicosEntidad tecnicosEntidad);

    /**
     * Inserts a single row in the TecnicosEntidad table and in entidad_tecnico.
     *
     * @param tecnicosEntidad
     *            TecnicosEntidad tecnicosEntidad
     * @return TecnicosEntidad tecnicosEntidad
     */
    TecnicosEntidad addTecnicoRelacion(TecnicosEntidad tecnicosEntidad);

    /**
     * Updates a single row in the TecnicosEntidad table.
     *
     * @param tecnicosEntidad
     *            TecnicosEntidad tecnicosEntidad
     * @return TecnicosEntidad tecnicosEntidad
     */
    TecnicosEntidad update(TecnicosEntidad tecnicosEntidad);

    /**
     * guardar entidad
     * 
     * @param tecnicosEntidad
     *            TecnicosEntidad tecnicosEntidad
     * @return TecnicosEntidad tecnicosEntidad
     */
    TecnicosEntidad guardarEntidadesTecnico(TecnicosEntidad tecnicosEntidad);

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

    /**
     * Deletes a single row in the TecnicosEntidad table.
     *
     * @param tecnicosEntidad
     *            TecnicosEntidad tecnicosEntidad
     */
    void remove(TecnicosEntidad tecnicosEntidad);

    /**
     * borrar entidad
     * 
     * @param codtecnico
     *            Integer codtecnico
     * @param codentidad
     *            Integer codentidad
     */
    void borrarEntidadTecnico(Integer codtecnico, Integer codentidad);

    /**
     * Finds a list of rows in the TecnicosEntidad table.
     *
     * @param tecnicosEntidad
     *            TecnicosEntidad tecnicosEntidad
     * @param jqGridRequestDto
     *            JQGridRequestDto jqGridRequestDto
     * @return List<TecnicosEntidad> lista
     */
    List<TecnicosEntidad> findAll(TecnicosEntidad tecnicosEntidad, JQGridRequestDto jqGridRequestDto);

    /**
     * Finds rows in the TecnicosEntidad table using like.
     *
     * @param tecnicosEntidad
     *            TecnicosEntidad tecnicosEntidad
     * @param jqGridRequestDto
     *            JQGridRequestDto jqGridRequestDto
     * @param startsWith
     *            Boolean startsWith
     * @return List<TecnicosEntidad> lista
     */
    List<TecnicosEntidad> findAllLike(TecnicosEntidad tecnicosEntidad, JQGridRequestDto jqGridRequestDto,
            Boolean startsWith);

    /*
     * OPERACIONES RUP_TABLE
     */

    /**
     * Removes rows from the TecnicosEntidad table.
     *
     * @param filterTecnicosEntidad
     *            TecnicosEntidad filterTecnicosEntidad
     * @param jqGridRequestDto
     *            JQGridRequestDto jqGridRequestDto
     * @param startsWith
     *            Boolean startsWith
     */
    void removeMultiple(TecnicosEntidad filterTecnicosEntidad, JQGridRequestDto jqGridRequestDto, Boolean startsWith);

    /**
     * Filter method in the TecnicosEntidad table.
     *
     * @param filterTecnicosEntidad
     *            TecnicosEntidad filterTecnicosEntidad
     * @param jqGridRequestDto
     *            JQGridRequestDto jqGridRequestDto
     * @param startsWith
     *            Boolean startsWith
     * @return JQGridResponseDto<TecnicosEntidad> JQGridResponseDto
     */
    JQGridResponseDto<TecnicosEntidad> filter(TecnicosEntidad filterTecnicosEntidad, JQGridRequestDto jqGridRequestDto,
            Boolean startsWith);

    /**
     * Filter method in the TecnicosEntidad table.
     *
     * @param tecnico
     *            TecnicosEntidad tecnico
     */
    void asociarTecnico(TecnicosEntidad tecnico);

    /**
     * Filter method in the TecnicosEntidad table.
     *
     * @param tecnico
     *            TecnicosEntidad tecnico
     */
    void desasociarTecnico(TecnicosEntidad tecnico);

    /**
     * Reorder the selection made in TecnicosEntidad table.
     *
     * @param filterTecnicosEntidad
     *            TecnicosEntidad filterTecnicosEntidad
     * @param jqGridRequestDto
     *            JQGridRequestDto jqGridRequestDto
     * @param startsWith
     *            Boolean startsWith
     * @return Object Object
     */
    Object reorderSelection(TecnicosEntidad filterTecnicosEntidad, JQGridRequestDto jqGridRequestDto,
            Boolean startsWith);

}
