using System;

namespace GestionIntegral.Api.Services.Contables
{
    // Se lanza cuando un C/U/D intenta afectar la cuenta corriente de un distribuidor en una fecha
    // que cae dentro de un período cerrado (cue_CierresCuentaCorriente con Estado='Activo').
    // Mapea al código de error PERIODO_CERRADO_BLOQUEO_OPERACION (HTTP 409).
    public class BloqueoPorPeriodoCerradoException : Exception
    {
        public int IdCierre { get; }
        public DateTime FechaCorte { get; }

        public BloqueoPorPeriodoCerradoException(int idCierre, DateTime fechaCorte)
            : base($"El período está cerrado al {fechaCorte:dd/MM/yyyy} (cierre #{idCierre}). No se permiten modificaciones sobre fechas anteriores o iguales a la fecha de corte.")
        {
            IdCierre = idCierre;
            FechaCorte = fechaCorte;
        }
    }
}
