using GestionaDenuncias.Shared.Models;

namespace ApiDenuncias.Services;

public interface IFilteredDenunciaStore
{
    Task<DenunciasGestiona?> GetDenunciaByGestionaFileCodeAsync(
        string gestionaFileCode,
        CancellationToken cancellationToken = default);

    Task<List<DenunciasGestiona>> GetDenunciasByIdsAsync(
        IReadOnlyCollection<int> denunciaIds,
        CancellationToken cancellationToken = default);

    Task<List<DenunciasGestiona>> GetDenunciasByIdsAsync(
        IReadOnlyCollection<int> denunciaIds,
        DenunciaListScope scope,
        CancellationToken cancellationToken = default);

    Task<List<FicherosDenuncias>> GetFicherosByDenunciaIdsAsync(
        IReadOnlyCollection<int> denunciaIds,
        CancellationToken cancellationToken = default);

    Task<List<FicherosDenuncias>> GetFicherosMetadataByDenunciaAsync(
        int denunciaId,
        CancellationToken cancellationToken = default);
}
