using SIGCM2.Application.Abstractions.Persistence;

namespace SIGCM2.Application.Avisos;

/// <summary>
/// STUB — PRD-002 reemplaza con AvisoQueryRepository contra dbo.Aviso.
/// Returns 0 / empty dictionary so every handler guard passes and every tree node shows TieneAvisos=false.
/// This is intentional for CAT-002: the mechanism is installed; the data feed arrives in PRD-002.
/// </summary>
public sealed class NullAvisoQueryRepository : IAvisoQueryRepository
{
    private static readonly IReadOnlyDictionary<int, int> Empty =
        new Dictionary<int, int>(capacity: 0);

    public Task<int> CountAvisosEnRubroAsync(int rubroId, CancellationToken ct = default)
        => Task.FromResult(0);

    public Task<IReadOnlyDictionary<int, int>> CountAvisosBatchAsync(
        IReadOnlyCollection<int> rubroIds,
        CancellationToken ct = default)
        => Task.FromResult(Empty);
}
