namespace SIGCM2.Domain.Exceptions;

/// <summary>
/// Thrown when attempting to assign an aviso to a rubro that has active children.
/// Invariante: un nodo con hijos activos es RAMA — no puede recibir avisos directos. → HTTP 409
/// NOTE: no handler launches this in CAT-002. Consumer: PRD-002 CreateAvisoCommandHandler.
/// </summary>
public sealed class RubroEsRamaConHijosActivosException : DomainException
{
    public int RubroId { get; }
    public int CantidadHijos { get; }

    public RubroEsRamaConHijosActivosException(int rubroId, int cantidadHijos)
        : base($"El destino tiene sub-rubros. No puede contener avisos directos.")
    {
        RubroId = rubroId;
        CantidadHijos = cantidadHijos;
    }
}
