Saltar a contenido

Módulo de Dominio: NombreModulo

Autor: Nombre Apellido
Namespace: LambdasLogiGho.Dominio.NombreModulo
Capa: Dominio — sin dependencias externas


¿Qué representa?

Descripción en 2-3 líneas. Qué concepto del negocio modela este módulo. Ejemplo: "Representa una tarjeta de pago registrada por un usuario de LogiGho. Contiene las reglas de negocio sobre validaciones, estados y límites de una tarjeta."


Entidades

NombreEntidad

Descripción breve de qué es esta entidad en términos del negocio.

Propiedades

Propiedad Tipo Requerido Descripción
Id Guid Identificador único
Propiedad string Descripción
PropiedadOpcional string? No Descripción
FechaCreacion DateTime Cuándo fue creada

Reglas de negocio

Las reglas que esta entidad hace cumplir. Si una regla se viola, qué excepción lanza.

Regla Descripción Excepción
Regla 1 El campo X no puede ser vacío NombreExcepcion
Regla 2 El valor Y debe ser mayor a 0 NombreExcepcion

Métodos de dominio

NombreMetodo(param: tipo): tipo

Descripción: Qué hace este método en términos de negocio.

Parámetros: - param — Descripción

Proceso: 1. Valida que... 2. Aplica la regla de... 3. Retorna...

Retorna: Descripción


Value Objects

NombreValueObject

Descripción de qué representa y por qué es un Value Object (inmutable, sin identidad propia).

Propiedades

Propiedad Tipo Descripción
Valor string El valor que encapsula

Validaciones

Validación Descripción
Formato Debe cumplir el formato X
Longitud Mínimo X, máximo Y caracteres

Enumeraciones

NombreEnum

Valor Descripción
Estado1 Qué significa este estado
Estado2 Qué significa este estado

Interfaces de repositorio

INombreRepositorio

Define el contrato que Infraestructura debe implementar.

Método Retorno Descripción
ObtenerPorId(Guid id) Task<NombreEntidad?> Busca por ID
Guardar(NombreEntidad) Task Persiste la entidad
Eliminar(Guid id) Task Elimina por ID
ObtenerTodos() Task<IList<NombreEntidad>> Retorna todos

Excepciones de dominio

Excepción Cuándo se lanza
NombreNotFoundException Cuando no se encuentra el recurso por ID
NombreValidationException Cuando una regla de negocio es violada

Relaciones con otros módulos

Módulo Tipo de relación Descripción
OtroModulo Referencia por ID NombreEntidad tiene un OtroModuloId

Eventos de dominio

Solo si el módulo emite eventos. Eliminar sección si no aplica.

NombreEvent

Cuándo se emite: Descripción del momento en que ocurre.

Datos del evento: | Campo | Tipo | Descripción | |---|---|---| | Id | Guid | ID de la entidad afectada | | Fecha | DateTime | Cuándo ocurrió |


Changelog del módulo

Fecha Autor Cambio
YYYY-MM-DD Nombre Descripción

Observaciones

Decisiones de diseño, deuda técnica, cosas no obvias del modelo.

  • Observación 1