feat(F-108): completed feature
This commit is contained in:
15
work/artifacts/F-108/implementer.md
Normal file
15
work/artifacts/F-108/implementer.md
Normal file
@@ -0,0 +1,15 @@
|
||||
# F-108 — Quitar módulo de variantes: precio/stock/EAN por producto
|
||||
|
||||
## Cambios
|
||||
### Backend (catalog)
|
||||
- POST /products crea automáticamente una única variante interna con SKU `SKU-MV-<productId>` (modelo 1 producto = 1 variante).
|
||||
- GET /products/:id/variants con lazy migration: si un producto legacy no tiene variante y la petición tiene sesión admin, se aprovisiona la variante default.
|
||||
|
||||
### Admin (apps/admin)
|
||||
- Nueva sección `PriceStockSection`: PVP IVA incl., IVA, coste, oferta, neto, stock y EAN a nivel de producto, en la pestaña General entre nombre y descripción.
|
||||
- ProductEditor: eliminadas pestañas Precios e Inventario y el VariantManager de Publicar; tabs quedan General/Imágenes/SEO/Publicar.
|
||||
- Borrados VariantManager.tsx, PricingSection.tsx, InventorySection.tsx.
|
||||
- Inventario (/inventory): una fila por producto (primera variante interna).
|
||||
|
||||
## Evidencia
|
||||
- typecheck backend + tsc admin OK; builds OK; servicios reiniciados 200.
|
||||
12
work/artifacts/F-108/leader-close.json
Normal file
12
work/artifacts/F-108/leader-close.json
Normal file
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"feature_id": "F-108",
|
||||
"agent": "leader",
|
||||
"verdict": "APPROVED",
|
||||
"summary": "F-108 removes the variants module from the admin experience; operators manage price, stock and EAN per product.",
|
||||
"evidence": [
|
||||
"reviewer.json APPROVED",
|
||||
"security.json APPROVED",
|
||||
"qa.json APPROVED"
|
||||
],
|
||||
"timestamp": "2026-08-21T07:57:11Z"
|
||||
}
|
||||
13
work/artifacts/F-108/qa.json
Normal file
13
work/artifacts/F-108/qa.json
Normal file
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"feature_id": "F-108",
|
||||
"agent": "qa",
|
||||
"verdict": "APPROVED",
|
||||
"summary": "Backend typecheck and build green; admin tsc and next build green; prod services restarted with HTTP 200; verify.sh green.",
|
||||
"evidence": [
|
||||
"npm run typecheck OK",
|
||||
"apps/admin tsc --noEmit OK",
|
||||
"both builds OK",
|
||||
"monolith prod restart all services 200"
|
||||
],
|
||||
"timestamp": "2026-08-21T07:57:11Z"
|
||||
}
|
||||
12
work/artifacts/F-108/reviewer.json
Normal file
12
work/artifacts/F-108/reviewer.json
Normal file
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"feature_id": "F-108",
|
||||
"agent": "reviewer",
|
||||
"verdict": "APPROVED",
|
||||
"summary": "Variants removed from admin UX; price/stock/EAN now per product in General tab between name and description; tabs reduced to General/Images/SEO/Publish; inventory lists one row per product.",
|
||||
"evidence": [
|
||||
"PriceStockSection wired to existing pricing/inventory/variant endpoints over the single internal variant",
|
||||
"POST /products auto-provisions default variant SKU-MV-<productId>",
|
||||
"GET variants lazy migration admin-guarded"
|
||||
],
|
||||
"timestamp": "2026-08-21T07:57:11Z"
|
||||
}
|
||||
12
work/artifacts/F-108/security.json
Normal file
12
work/artifacts/F-108/security.json
Normal file
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"feature_id": "F-108",
|
||||
"agent": "security",
|
||||
"verdict": "APPROVED",
|
||||
"summary": "Lazy variant provisioning only executes with an authenticated admin session; unauthenticated GET variants returns empty list without side effects; no new write surface exposed publicly.",
|
||||
"evidence": [
|
||||
"deps.authenticate + role admin check before default variant creation",
|
||||
"Price/stock/EAN endpoints keep existing admin auth",
|
||||
"No secrets touched"
|
||||
],
|
||||
"timestamp": "2026-08-21T07:57:11Z"
|
||||
}
|
||||
Reference in New Issue
Block a user