using System.Collections.Generic;
namespace GB5Shared.GOP.GBQueryExecutor.Models
{
/// Result of ExecuteScalarAsync — a single typed value.
public sealed class QueryScalarResult
{
public T? Value { get; init; }
public long DurationMs { get; init; }
public bool IsSuccess { get; init; }
public string? Error { get; init; }
}
/// Result of ExecuteRowAsync — a single row as a column-value map.
public sealed class QueryRowResult
{
public IReadOnlyDictionary Row { get; init; } = new Dictionary();
public bool Found { get; init; }
public long DurationMs { get; init; }
}
/// Result of ExecuteDatasetAsync — multiple rows.
public sealed class QueryDataResult
{
public IReadOnlyList> Rows { get; init; } = [];
public int RowsReturned { get; init; }
public bool IsCapReached { get; init; }
public long DurationMs { get; init; }
}
}