Skip to content

fix(api): harden product domain validation and public serializer #3

@tomiloki

Description

@tomiloki

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

  1. Revisar backend/api/models.py.
  2. Revisar backend/api/serializers.py.
  3. Observar que Product.price y Product.quantity no tienen validadores explícitos.
  4. 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:

  • internal_code
  • author

Entorno

  • Branch: main
  • Commit: pendiente
  • Navegador: N/A
  • SO: Windows

Criterios de aceptacion

  • Agregar validación para price >= 0.
  • Agregar validación para quantity >= 0.
  • Separar serializer público de serializer admin o ajustar el serializer público actual.
  • GET /api/products/ no expone internal_code ni author.
  • Admin sigue pudiendo gestionar esos campos si aplica.
  • Agregar tests backend para validación y contrato público.

Riesgos o dependencias

  • Cambia contrato de API pública; actualizar docs/API.md.
  • Frontend debe confirmarse compatible con la remoción de campos.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingpriority:highCritical or urgent portfolio-readiness workstatus:approvedApproved for implementation

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions