Descripcion
El dominio de productos permite estados inválidos o poco profesionales para e-commerce: no hay validación clara para precio/stock no negativos y el serializer público expone campos internos (internal_code, author).
Pasos para reproducir
- Revisar
backend/api/models.py.
- Revisar
backend/api/serializers.py.
- Observar que
Product.price y Product.quantity no tienen validadores explícitos.
- Observar que
ProductSerializer público expone internal_code y author.
Comportamiento esperado
El catálogo público debe exponer solo información pública y el modelo debe proteger invariantes básicas del dominio.
Comportamiento actual
El serializer público expone datos internos y el modelo no expresa constraints para precio/stock.
Evidencia
Campos públicos actuales incluyen:
Entorno
- Branch: main
- Commit: pendiente
- Navegador: N/A
- SO: Windows
Criterios de aceptacion
Riesgos o dependencias
- Cambia contrato de API pública; actualizar
docs/API.md.
- Frontend debe confirmarse compatible con la remoción de campos.
Descripcion
El dominio de productos permite estados inválidos o poco profesionales para e-commerce: no hay validación clara para precio/stock no negativos y el serializer público expone campos internos (
internal_code,author).Pasos para reproducir
backend/api/models.py.backend/api/serializers.py.Product.priceyProduct.quantityno tienen validadores explícitos.ProductSerializerpúblico exponeinternal_codeyauthor.Comportamiento esperado
El catálogo público debe exponer solo información pública y el modelo debe proteger invariantes básicas del dominio.
Comportamiento actual
El serializer público expone datos internos y el modelo no expresa constraints para precio/stock.
Evidencia
Campos públicos actuales incluyen:
internal_codeauthorEntorno
Criterios de aceptacion
price >= 0.quantity >= 0.GET /api/products/no exponeinternal_codeniauthor.Riesgos o dependencias
docs/API.md.