public interface IAlertQualityMetricsService
{
    Task<IReadOnlyList<AlertQualityMetricResponse>> ListAsync(
        AlertType? alertType, DateTimeOffset from, DateTimeOffset to);

    Task<AlertQualitySummaryResponse> GetSummaryAsync(
        DateTimeOffset from, DateTimeOffset to);

    /// <summary>
    /// Per-alert feedback rows for analytics export / by-scenario breakdown.
    /// When <paramref name="scenarioId"/> is set, only rows attributed to that
    /// simulation scenario are returned (join via SimulationRun.EncounterId).
    /// </summary>
    Task<IReadOnlyList<AlertFeedbackQualityRow>> ListFeedbackAsync(
        DateTimeOffset periodStart, DateTimeOffset periodEnd, string? scenarioId);
}
