using System.Collections.Generic;
using System.Threading.Tasks;
using GestionIntegral.Api.Dtos.Anomalia;
namespace GestionIntegral.Api.Services.Anomalia
{
    public interface IAlertaService
    {
        /// 
        /// Obtiene todas las alertas que no han sido marcadas como leídas.
        /// 
        /// Una colección de DTOs de alertas genéricas.
        Task> ObtenerAlertasNoLeidasAsync();
        /// 
        /// Marca una alerta específica como leída.
        /// 
        /// El ID de la alerta a marcar.
        /// Una tupla indicando si la operación fue exitosa y un mensaje de error si falló.
        Task<(bool Exito, string? Error)> MarcarComoLeidaAsync(int idAlerta);
        /// 
        /// Marca como leídas todas las alertas de un mismo tipo y para una misma entidad.
        /// (Ej: todas las alertas de "DevolucionAnomala" para el Canillita ID 45).
        /// 
        /// El tipo de alerta a marcar (ej. "DevolucionAnomala").
        /// El ID de la entidad afectada (ej. el IdCanilla).
        /// Una tupla indicando si la operación fue exitosa y un mensaje de error si falló.
        Task<(bool Exito, string? Error)> MarcarGrupoComoLeidoAsync(string tipoAlerta, int idEntidad);
    }
}