using System;
using System.Threading.Tasks;

namespace GestionIntegral.Api.Services.Contables
{
    // Resultado del chequeo de período cerrado.
    // Si EstaCerrado=true, IdCierre y FechaCorte tienen el cierre que bloquea la operación.
    public record PeriodoCerradoResult(bool EstaCerrado, int? IdCierre, DateTime? FechaCorte);

    public interface IPeriodoCerradoValidator
    {
        Task<PeriodoCerradoResult> EstaCerradoAsync(string destino, int idDestino, int idEmpresa, DateTime fechaOperacion);

        // Invalida la entrada de cache para el par (Distribuidor + Empresa). Llamar después de Crear o Anular cierre.
        void InvalidarCache(int idDistribuidor, int idEmpresa);
    }
}
