DTOs - bootcamp-uchile-2026/grupo-2-backend GitHub Wiki
DTOs
Los Data Transfer Objects (DTOs) definen los contratos de datos utilizados para las solicitudes y respuestas de BuenOrigen. Los DTOs vigentes siguen nombres y propiedades en inglés, conforme a la normalización integrada en el PR #50.
Alcance documental: contratos descritos en la Wiki previamente compartida y cambios aprobados hasta el 13 de octubre de 2026 (incluido PR #59). Esta página no reemplaza la especificación OpenAPI generada desde la rama
develop. Los nombres internos de código siguen la convención en inglés; las rutas HTTP conservan el contrato publicado.
Organización
Los DTOs se encuentran organizados en src/dto/; los modelos de dominio en src/models/. No utilizar las rutas heredadas src/model/ ni src/model/dtos/ como referencias actuales.
DTOs identificados en antecedentes del código
| DTO | Uso principal |
|---|---|
ProductSearchDto |
Resumen de resultados de búsqueda |
ProductOfferDto |
Productos en oferta |
BestSellingProductDto |
Productos más vendidos |
NewProductSummaryDto |
Novedades del catálogo |
ProductDetailDto |
Detalle del producto |
ProductGreenFootprintDto |
Huella Verde del producto |
ProductReviewDto |
Valoraciones públicas |
RelatedProductDto |
Productos relacionados |
ProductSummaryDto |
Resumen reutilizable de productos |
Los nombres anteriores aparecen en los imports de ProductsService compartidos durante la revisión del backend. Para describir propiedades, tipos, nullable y obligatoriedad exactos, el contenido de las clases DTO en develop es la fuente determinante. Evitamos copiar atributos obsoletos de los DTOs antiguos en español.
Contratos de emprendedores y subcategorías
Los servicios y controllers de estos dominios proporcionan consultas públicas y DTOs de respuesta. Los nombres precisos de todas sus clases DTO actuales no se encuentran completamente confirmados en los antecedentes recuperados; deben documentarse desde src/dto/ sin traducir denominaciones del Hito 1.
Conceptos importantes
- Un DTO representa el contrato de transferencia, no necesariamente todas las propiedades de su modelo interno.
@ApiProperty()documenta propiedades en OpenAPI.class-validatory los pipes aplicables realizan validaciones; Swagger no las ejecuta por sí mismo.- Una propiedad opcional y una propiedad que admite
nullno son equivalentes. - Un DTO de salida no implica automáticamente que exista un endpoint de escritura o autenticación.
DTOs pendientes definidos a nivel funcional
Los requerimientos de usuarios, carrito, favoritos, pagos, envíos, compras, direcciones, devoluciones, Puntos Verdes y administración de emprendedores no autorizan a afirmar que existen clases DTO concretas. Sus esquemas se incorporarán cuando el equipo apruebe e implemente los contratos.