feat(domain): excepciones regla de oro rama/hoja (CAT-002)
This commit is contained in:
@@ -0,0 +1,19 @@
|
||||
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;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
namespace SIGCM2.Domain.Exceptions;
|
||||
|
||||
/// <summary>
|
||||
/// Thrown when attempting to create or move a child into a rubro that already has avisos assigned.
|
||||
/// Invariante: un nodo con avisos es HOJA — no puede tener hijos. → HTTP 409
|
||||
/// </summary>
|
||||
public sealed class RubroPadreEsHojaConAvisosException : DomainException
|
||||
{
|
||||
public int ParentId { get; }
|
||||
public int CantidadAvisos { get; }
|
||||
|
||||
public RubroPadreEsHojaConAvisosException(int parentId, int cantidadAvisos)
|
||||
: base($"El rubro padre contiene {cantidadAvisos} avisos. Muévalos antes de crear sub-rubros.")
|
||||
{
|
||||
ParentId = parentId;
|
||||
CantidadAvisos = cantidadAvisos;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user