using System.Text.Json;
namespace Bit.SeederApi.Services;
///
/// Service for executing query operations.
///
///
/// The query service provides a mechanism to execute read-only query operations by name with optional JSON arguments.
/// Queries retrieve existing data from the system without modifying state or tracking entities.
///
public interface IQueryService
{
///
/// Executes a query with the given query name and arguments.
/// Queries are read-only and do not track entities or create seed IDs.
///
/// The name of the query (e.g., "EmergencyAccessInviteQuery")
/// Optional JSON arguments to pass to the query's Execute method
/// The result of the query execution
/// Thrown when the query is not found
/// Thrown when there's an error executing the query
object ExecuteQuery(string queryName, JsonElement? arguments);
}