[PRD-001 / Frontend] ProductTypesPage.openEdit() debe fetchear ProductTypeDetail antes de precargar el form #37
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Contexto
Detectado durante re-verify de PRD-001 (post W3 fix, PR en preparación).
En
src/web/src/features/product-types/pages/ProductTypesPage.tsx, la funciónopenEdit(pt: ProductTypeListItem)mapea elListItema unProductTypeDetailcon los campos multimedia ennull. Si unProductTypetieneallowImages: truecon límites almacenados (MaxImages,MaxImageSizeMB,MaxImageWidth,MaxImageHeight), abrir el edit dialog muestra esos campos vacíos/disabled y al guardar se sobrescriben silenciosamente con null.Impacto
Riesgo práctico actual: BAJO. Pre-PRD-008 (seed de 12 tipos legacy) no existen
ProductTypescon multimedia limits configurados en producción. El bug es dormant.Riesgo a partir de PRD-008 / uso real: ALTO. Un admin editando un tipo con multimedia config cargada perdería esa configuración sin advertencia.
Fix propuesto
Usar el hook
useProductType(id)(ya implementado y actualmente sin consumers) para fetchear el detalle completo antes de abrir el dialog en modo edit.Opciones:
openEdit, invocarqueryClient.fetchQuerycon la queryKey deuseProductType(id)y esperar el resultado antes de abrir el dialog. Mientras carga, mostrar spinner o disable del botón. Limpio, no cambia API.GET /api/v1/product-types) para incluir todos los campos multimedia. Ahorra una llamada pero acopla el ListItem al detalle./admin/product-types/:id/editroute dedicada que hace fetch por sí misma (patrón página vs dialog). Mayor cambio.Preferencia: Opción A — mínima invasividad, usa el hook que ya existe.
Criterios de aceptación
ProductTypeDetailantes de abrir el dialog (loading state visible o botón disabled durante fetch)allowImages: truePrioridad
Antes de PRD-008 (seed de tipos legacy) o antes del primer admin creando/editando tipos con multimedia en producción — lo que ocurra primero.
Artifacts
sdd/prd-001-product-type-flags-multimedia/verify-report— sección "openEdit Deviation Assessment"sdd/prd-001-product-type-flags-multimedia/archive-report(cuando se genere)