2.0 KiB
2.0 KiB
F-140 — Implementer evidence
What
F-140 build evidence: GET /orders/:id/admin enriched with customer/address/payment; admin page shows new sections. tsc 0, verify.sh verde.
Files
project/migrations/050_order_detail_address_type.js— ADD COLUMN type to users_addresses, ADD COLUMN phone to identity_users, ADD COLUMN customer_name/customer_phone to orders_ordersproject/src/modules/orders/domain/order.ts— OrderView extended with Address, PaymentInfo interfaces; Order extended with customerName/customerPhoneproject/src/modules/orders/infrastructure/pg-order-repository.ts— findById JOINs users_addresses (shipping+billing) + payments_transactions; toOrderView maps all new fieldsproject/src/modules/orders/api/orders.routes.ts— serializeOrder includes customerName/customerPhone/phone/shippingAddress/billingAddress/paymentproject/apps/admin/src/types/index.ts— Order extended with Address, PaymentInfo, customerName, phone, shippingAddress, billingAddress, paymentproject/apps/admin/src/app/(dashboard)/orders/[id]/page.tsx— new sidebar sections: Cliente, Dirección de envío, Dirección de facturación, Pago
Verification
npm run build→ 0 TypeScript errors.check-module-boundaries.mjs src→ 0 NEW violations../scripts/verify.sh→ green.
AC traceability
| AC | Estado | Evidencia |
|---|---|---|
| AC1 customer data | ✅ | customerName/customerPhone/email/phone en OrderView y serialize |
| AC2 shipping address | ✅ | users_addresses WHERE user_id AND type='shipping' → serialize |
| AC3 billing address | ✅ | users_addresses WHERE user_id AND type='billing' → serialize |
| AC4 payment | ✅ | payments_transactions WHERE order_id AND status='succeeded' latest → provider/status/last4 |
| AC5 admin sections | ✅ | orders/[id]/page.tsx sidebar: Cliente + Envío + Facturación + Pago |
| AC6 read-only | ✅ | Solo renderizado, sin edits |
| AC7 tsc/verify | ✅ | tsc 0, verify verde |