[PRD-003] Paginación en GET /api/v1/products/{id}/prices #47

Closed
opened 2026-04-19 22:10:23 +00:00 by dmolinari · 0 comments
Owner

Origen

SUGGESTION S2 del verify-report de PRD-003. Engram topic_key: sdd/prd-003-product-prices-historicos/verify-report. También documentado como OQ-D en sdd/prd-003-product-prices-historicos/spec.

Contexto

El endpoint GET /api/v1/products/{id}/prices devuelve la lista completa del histórico ordenada descendente por PriceValidFrom. En PRD-003 se asumió MVP con <50 registros/producto y se aceptó explícitamente no implementar paginación.

Cuándo se rompe la asunción

  • Producto con precios programados frecuentes (ej. promo semanal durante años)
  • Migración legacy que importa histórico profundo desde VB6
  • Algún uso inesperado por negocio

Propuesta

Agregar paginación estándar al endpoint:

  • Query params: ?page=1&pageSize=50 (defaults)
  • Response: { items: ProductPriceDto[], page, pageSize, totalCount, totalPages }
  • Mismo pattern que otros endpoints paginados del sistema (Rubros, Products, Users)

Frontend

ProductPriceHistory.tsx debe agregar paginación visual (shadcn Pagination o infinite scroll según UX deseada).

Criticidad

Media. No bloquea, pero conviene antes de que negocio traiga un producto con histórico largo. Alternativa: agregar alerta en backend si el count supera N (ej. 100) y dejar paginación para cuando se dispare.

Relacionado

  • sdd/prd-003-product-prices-historicos/spec OQ-D (deuda explícita)
## Origen SUGGESTION S2 del verify-report de PRD-003. Engram topic_key: `sdd/prd-003-product-prices-historicos/verify-report`. También documentado como OQ-D en `sdd/prd-003-product-prices-historicos/spec`. ## Contexto El endpoint `GET /api/v1/products/{id}/prices` devuelve la lista **completa** del histórico ordenada descendente por `PriceValidFrom`. En PRD-003 se asumió MVP con <50 registros/producto y se aceptó explícitamente no implementar paginación. ## Cuándo se rompe la asunción - Producto con precios programados frecuentes (ej. promo semanal durante años) - Migración legacy que importa histórico profundo desde VB6 - Algún uso inesperado por negocio ## Propuesta Agregar paginación estándar al endpoint: - Query params: `?page=1&pageSize=50` (defaults) - Response: `{ items: ProductPriceDto[], page, pageSize, totalCount, totalPages }` - Mismo pattern que otros endpoints paginados del sistema (Rubros, Products, Users) ## Frontend `ProductPriceHistory.tsx` debe agregar paginación visual (shadcn Pagination o infinite scroll según UX deseada). ## Criticidad Media. No bloquea, pero conviene antes de que negocio traiga un producto con histórico largo. Alternativa: agregar alerta en backend si el count supera N (ej. 100) y dejar paginación para cuando se dispare. ## Relacionado - `sdd/prd-003-product-prices-historicos/spec` OQ-D (deuda explícita)
dmolinari added the followup label 2026-04-19 22:10:23 +00:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: dmolinari/SIG-CM2.0#47