24 lines
1.5 KiB
JSON
24 lines
1.5 KiB
JSON
{
|
|
"feature_id": "F-072",
|
|
"agent": "reviewer",
|
|
"verdict": "APPROVED",
|
|
"summary": "F-072 replaces hardcoded 2-option VAT dropdown with dynamic fetch from GET /admin/tax-rates. Backend domain type updated to support 'super-reduced', migration 031 applied, admin PricingSection and InventorySection updated to show all active rates dynamically. API verified: PUT with vatRate='super-reduced' → HTTP 200.",
|
|
"evidence": [
|
|
"price.ts: VatRate type extended with 'super-reduced', VAT_BASIS_POINTS updated with 400",
|
|
"pricing.routes.ts: vatRateSchema now accepts 'super-reduced'",
|
|
"Migration 031 applied: CHECK constraints updated on pricing_variant_prices and pricing_price_history",
|
|
"admin types/index.ts: VariantPrice.vatRate includes 'super-reduced'",
|
|
"admin api-client.ts: setVariantPrice accepts 'super-reduced'",
|
|
"PricingSection.tsx: fetches taxApi.list(), filters active=true, populates dropdown dynamically, uses dynamic rate for calculations",
|
|
"InventorySection.tsx: VariantRow type, gross calculation, and display all support 'super-reduced'",
|
|
"npx tsc --noEmit backend exit 0",
|
|
"npx tsc --noEmit admin exit 0",
|
|
"npx eslint on changed files exit 0",
|
|
"API: PUT /pricing/variants/:id with vatRate='super-reduced' → HTTP 200",
|
|
"API: GET /pricing/variants/:id returns vatRate='super-reduced'",
|
|
"API: GET /admin/tax-rates returns 3 active rates (4%, 10%, 21%)",
|
|
"verify.sh exit 0"
|
|
],
|
|
"timestamp": "2026-08-19T17:22:00Z"
|
|
}
|