//using System;
//using System.Collections.Generic;
//using System.Linq;
////using System.Linq.Dynamic.Core;
//using System.Text;
//using System.Threading.Tasks;
//using GB5Shared.DTO.Framework.Login;
//namespace FrameworkDAL.CustomCode.QueryExecutor
//{
// public interface IQueryExecutor
// {
// ///
// /// Fetches a single record as a DTO based on the SQL query.
// ///
// /// The type of DTO.
// /// The SQL query string.
// /// Optional parameters for the SQL query.
// /// A single DTO or null if no match.
// Task QuerySingleAsync(LoginDTO LoginDTO, string sql, object parameters = null);
// /////
// ///// Fetches multiple records as a list of DTOs based on the SQL query.
// /////
// ///// The type of DTO.
// ///// The SQL query string.
// ///// Optional parameters for the SQL query.
// ///// A list of DTOs.
// Task> QueryAsync(LoginDTO LoginDTO, string sql, object parameters = null);
// /////
// ///// Fetches multiple records as a list of DTOs based on the SQL query.
// /////
// ///// The type of DTO.
// ///// The SQL query string.
// ///// Optional parameters for the SQL query.
// ///// A list of DTOs.
// Task> QueryAsync(string ConnectionName, string sql, object parameters = null);
// /////
// ///// Executes a SQL command (insert, update, delete, etc.) and returns the number of affected rows.
// /////
// ///// The SQL command string.
// ///// Optional parameters for the SQL command.
// ///// The number of affected rows.
// Task ExecuteAsync(LoginDTO LoginDTO, string sql, object parameters = null);
// /////
// ///// Streams the results of a query asynchronously, suitable for large datasets.
// /////
// ///// The type of DTO.
// ///// The SQL query string.
// ///// Optional parameters for the SQL query.
// ///// An asynchronous stream of DTOs.
// IAsyncEnumerable StreamAsync(LoginDTO LoginDTO, string sql, object parameters = null);
// /////
// ///// Fetches records in a paginated fashion based on the SQL query.
// /////
// ///// The type of DTO.
// ///// The SQL query string with pagination logic (e.g., OFFSET and FETCH).
// ///// Optional parameters for the SQL query.
// ///// A list of DTOs and total count for pagination.
// Task> QueryPagedAsync(LoginDTO LoginDTO, string sql, object parameters = null);
// /////
// ///// Executes a bulk insert for a collection of DTOs.
// /////
// ///// The type of DTO to insert.
// ///// The SQL query for the insert operation.
// ///// The collection of DTOs to insert.
// ///// The number of rows affected.
// Task BulkInsertAsync(LoginDTO LoginDTO, string sql, IEnumerable items);
// IAsyncEnumerable ExecuteQueryAsync(LoginDTO LoginDTO, string sql, object parameters = null);
// Task> QueryAsync(
// LoginDTO loginDTO,
// string sql,
// Func map,
// object parameters = null,
// string splitOn = "Id");
// Task> QueryAsyncnew(
// LoginDTO loginDTO,
// string sql,
// Func map,
// object parameters = null,
// string splitOn = "Id");
// }
//}