package com.ejie.ad74a.dao;

import java.util.List;

import com.ejie.ad74a.model.NotifPostales;
import com.ejie.x38.dto.TableRequestDto;
import com.ejie.x38.dto.TableRowDto;

/**
 * NotifPostalesDao generated by UDA, 09-ene-2024 16:08:21.
 * 
 * @author UDA
 */

public interface NotifPostalesDao {

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

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

	/**
	 * Actualiza varios registros de NotifPostal a la vez.
	 * 
	 * @param notifPostalesList
	 * @return
	 * @author jbhg
	 */
	List<NotifPostales> updateMultiple(List<NotifPostales> notifPostalesList);

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

	/**
	 * Removes a single row in the NotifPostales table.
	 *
	 * @param notifpostales NotifPostales
	 */
	void remove(NotifPostales notifpostales);

	/**
	 * Finds rows in the NotifPostales table using like.
	 *
	 * @param notifpostales   NotifPostales
	 * @param tableRequestDto TableRequestDto
	 * @param startsWith      Boolean
	 * @return List
	 */
	List<NotifPostales> findAllLike(NotifPostales notifpostales, TableRequestDto tableRequestDto, Boolean startsWith);

	/*
	 * OPERACIONES RUP_TABLE
	 */

	/**
	 * Removes multiple rows from the NotifPostales table.
	 *
	 * @param filterNotifPostales NotifPostales
	 * @param tableRequestDto     TableRequestDto
	 * @param startsWith          Boolean
	 */
	void removeMultiple(NotifPostales filterNotifPostales, TableRequestDto tableRequestDto, Boolean startsWith);

	/**
	 * Counts rows in the NotifPostales table using like.
	 *
	 * @param notifpostales NotifPostales
	 * @param startsWith    Boolean
	 * @return Long
	 */
	Long findAllLikeCount(NotifPostales notifpostales, Boolean startsWith);

	/**
	 * Reorder selection.
	 *
	 * @param filterNotifPostales NotifPostales
	 * @param tableRequestDto     TableRequestDto
	 * @param startsWith          Boolean
	 * @return List<TableRowDto<NotifPostales>>
	 */
	List<TableRowDto<NotifPostales>> reorderSelection(NotifPostales filterNotifPostales,
			TableRequestDto tableRequestDto, Boolean startsWith);

	/**
	 * Exporta Datos al clipBoard
	 *
	 */
	List<NotifPostales> getMultiple(NotifPostales filterNotifPostales, TableRequestDto tableRequestDto,
			Boolean startsWith);

}
