namespace EnvelopeGenerator.Application.Common.Interfaces.SQLExecutor; /// /// Defines methods for executing raw SQL queries or custom SQL query classes and returning query executors for further operations. /// Provides abstraction for raw SQL execution as well as mapping the results to objects. /// /// The entity type to which the SQL query results will be mapped. public interface ISQLExecutor: ISQLExecutor { /// /// Executes a raw SQL query and returns an for further querying operations on the result. /// /// The raw SQL query to execute. /// Optional cancellation token for the operation. /// Optional parameters for the SQL query. /// An instance for further query operations on the result. IQuery Execute(string sql, CancellationToken cancellation = default, params object[] parameters); /// /// Executes a custom SQL query defined by a class that implements and returns an for further querying operations on the result. /// /// The type of the custom SQL query class implementing . /// Optional cancellation token for the operation. /// Optional parameters for the SQL query. /// An instance for further query operations on the result. IQuery Execute(CancellationToken cancellation = default, params object[] parameters) where TSQL : ISQL; }