using GB5Shared.DTO.Framework.Criteria;
using GB5Shared.DTO.Framework.Login;
using AdminDAL.DTO.FinanceBook;
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
namespace AdminDAL.CustomCode.FinanceBook
{
///
/// Data Access Layer interface for managing Finance Book records in the database.
/// Provides methods to retrieve, insert, update, and delete Finance Book entries.
///
public interface IFinanceBookDAL
{
///
/// Retrieves a single Finance Book by its unique identifier.
///
/// The unique identifier of the Finance Book.
/// The current user's login details.
/// A JSON string representing the Finance Book details.
Task GetFinanceBook(int FinanceBookId, LoginDTO LoginDTO);
///
/// Retrieves a list of Finance Books based on specified criteria.
/// Typically used for populating dropdowns or picklists.
///
/// Filter criteria for selecting Finance Books.
/// The current user's login details.
/// A JSON string representing a list of Finance Books.
Task GetSelectListFinanceBook(CriteriaDTO CriteriaDTO, LoginDTO LoginDTO);
///
/// Inserts a new Finance Book record into the database.
///
/// The Finance Book data to save.
/// The current user's login details.
/// The number of rows affected (should be 1 if successful).
Task SaveFinanceBook(FinanceBookDTO FinanceBookDTO, LoginDTO LoginDTO);
///
/// Updates an existing Finance Book record in the database.
///
/// The updated Finance Book data.
/// The current user's login details.
/// The number of rows affected (should be 1 if successful).
Task UpdateFinanceBook(FinanceBookDTO FinanceBookDTO, LoginDTO LoginDTO);
///
/// Deletes a Finance Book record by its unique identifier.
///
/// The unique identifier of the Finance Book to delete.
/// The current user's login details.
/// A JSON string indicating success or failure of the delete operation.
Task DeleteFinanceBook(int FinanceBookId, LoginDTO LoginDTO);
}
}