Files

52 lines
2.2 KiB
C#

namespace EgwCoreLib.Lux.Data.Repository.Supplier
{
/// <summary>
/// Interfaccia per la gestione delle righe degli ordini.
/// </summary>
public interface IBuyOrderRowrepository : IBaseRepository
{
/// <summary>
/// Inserisce una nuova riga d'ordine nel database.
/// </summary>
/// <param name="entity">La riga d'ordine da inserire.</param>
/// <returns>True se l'inserimento ha successo, false altrimenti.</returns>
Task<bool> AddAsync(BuyOrderRowModel entity);
/// <summary>
/// Elimina una riga d'ordine e adegua i numeri di riga successivi.
/// </summary>
/// <param name="entity">La riga d'ordine da eliminare.</param>
/// <returns>True se l'eliminazione ha successo, false altrimenti.</returns>
Task<bool> DeleteAsync(BuyOrderRowModel entity);
/// <summary>
/// Recupera una riga d'ordine per il suo identificatore.
/// </summary>
/// <param name="buyOrderRowId">L'identificatore della riga d'ordine.</param>
/// <returns>La riga d'ordine corrispondente, o null se non esiste.</returns>
Task<BuyOrderRowModel?> GetByIdAsync(int buyOrderRowId);
/// <summary>
/// Recupera tutte le righe d'ordine per un ordine specifico.
/// </summary>
/// <param name="buyOrderId">L'identificatore dell'ordine.</param>
/// <returns>L'elenco delle righe d'ordine associate all'ordine.</returns>
Task<List<BuyOrderRowModel>> GetByParentAsync(int buyOrderId);
/// <summary>
/// Aggiorna in batch le righe d'ordine.
/// </summary>
/// <param name="rows">L'elenco delle righe da aggiornare.</param>
/// <returns>True se l'aggiornamento ha successo, false altrimenti.</returns>
Task<bool> SaveRowsAsync(List<BuyOrderRowModel> rows);
/// <summary>
/// Aggiorna una riga d'ordine esistente.
/// </summary>
/// <param name="entity">La riga d'ordine aggiornata.</param>
/// <returns>True se l'aggiornamento ha successo, false altrimenti.</returns>
Task<bool> UpdateAsync(BuyOrderRowModel entity);
}
}