FactuGES_ERP/docs/architecture/history/dto-schema-naming-legacy.md

103 lines
2.6 KiB
Markdown
Raw Normal View History

# ARCHIVADO — Convención anterior de nombres de schemas DTO
> Estado: **HISTÓRICO — NO NORMATIVO**. El naming y diseño vigentes están en [../dto-guidelines.md](../dto-guidelines.md).
---
# Convención de Nombres de Schemas DTO
2025-08-11 17:49:52 +00:00
Guía específica de naming para schemas DTO. Su referencia vigente es [../dto-guidelines.md](../dto-guidelines.md).
2025-08-11 17:49:52 +00:00
## Alcance
2025-08-11 17:49:52 +00:00
Usa este documento cuando la duda sea cómo nombrar un schema. Si la duda es de semántica, tipado, opcionalidad o modelado del contrato, usa antes la guía general de DTOs.
2025-08-11 17:49:52 +00:00
## Reglas base
2025-08-11 17:49:52 +00:00
1. Usar singular para el nombre base de la entidad: `Customer`, `Product`, `Proforma`.
2. En operaciones sobre recurso único, el verbo va primero.
3. En listados, el sustantivo principal va primero: `CustomerList`, nunca `ListCustomer`.
4. Mantener sufijos estables según el rol del schema.
5. No mezclar convenciones distintas para la misma familia de endpoints.
2025-08-11 17:49:52 +00:00
## Patrones recomendados
2025-08-11 17:49:52 +00:00
### Recurso único
2025-08-11 17:49:52 +00:00
```text
<Verb><Entity><Condition><SchemaRole>
```
2025-08-11 17:49:52 +00:00
Ejemplos:
2025-08-11 17:49:52 +00:00
- `GetCustomerByIdParamsSchema`
- `DeleteCustomerByIdParamsSchema`
- `UpdateIssuedInvoiceByIdCommandSchema`
2025-08-11 17:49:52 +00:00
### Colecciones
2025-08-11 17:49:52 +00:00
```text
<Entity>List<CriteriaOrFilter><SchemaRole>
```
2025-08-11 17:49:52 +00:00
Ejemplos:
2025-08-11 17:49:52 +00:00
- `CustomerListCriteriaSchema`
- `ProformaListResponseSchema`
- `IssuedInvoiceListQuerySchema`
2025-08-11 17:49:52 +00:00
## Sufijos estables
2025-08-11 17:49:52 +00:00
### Request
2025-08-11 17:49:52 +00:00
- `CommandSchema`: body de create, update o patch
- `ParamsSchema`: route params
- `QuerySchema`: query string raw
- `CriteriaSchema`: query normalizada con patrón Criteria
2025-08-11 17:49:52 +00:00
### Response
2025-08-11 17:49:52 +00:00
- `SummarySchema`: item de listado
- `ResourceSchema`: representación completa del recurso
- `DetailResponseSchema`: response de detalle
- `ListResponseSchema`: response de listado
- `CreatedResponseSchema`: confirmación o payload de creación
- `DeletedResponseSchema`: confirmación explícita de borrado cuando no se usa `204`
2025-08-11 17:49:52 +00:00
## Ejemplos
2025-08-11 17:49:52 +00:00
### Customers
2025-08-11 17:49:52 +00:00
- `CreateCustomerCommandSchema`
- `GetCustomerByIdParamsSchema`
- `CustomerListCriteriaSchema`
- `CustomerSummarySchema`
- `CustomerResourceSchema`
- `CustomerListResponseSchema`
2025-08-11 17:49:52 +00:00
### Proformas
2025-08-11 17:49:52 +00:00
- `CreateProformaCommandSchema`
- `UpdateProformaByIdParamsSchema`
- `ProformaListCriteriaSchema`
- `ProformaSummarySchema`
- `ProformaDetailResponseSchema`
2025-08-11 17:49:52 +00:00
## Errores a evitar
2025-08-11 17:49:52 +00:00
- `ListCustomerCriteriaSchema`
- `CustomersListResponseSchema`
- `UpdateCustomerCommandByIdSchema`
- `ProductGetByIdParamsSchema`
2025-08-11 17:49:52 +00:00
## Relación con la guía general
2025-08-11 17:49:52 +00:00
La guía de DTOs define:
2025-08-11 17:49:52 +00:00
- organización por carpetas
- tipado semántico
- manejo de `null`, `optional()` y colecciones
- diseño de `create`, `update`, `list` y `detail`
2025-08-11 17:49:52 +00:00
Este documento solo fija el naming.