Files
Verde-Web/app/Http/Controllers
admin 1bc1ea7282 feat(customer-web): Phase 2 — onboarding wizard + household management
Backend:
- New GET /api/v1/me/household endpoint. Returns the resident's
  household (with members + barangay + assigned DOP) or { household:
  null }. Used by the wizard to gate-keep the onboarding flow.

Frontend (customer-web/):
- /onboarding — 5-step wizard (Address+map, Size, Proof, Members,
  Review). Submits POST /households then uploads proof + adds
  members in sequence. Server-side guard redirects to /household
  when one already exists.
- /household — full status view:
  - Pending: live polling every 30s, "Refresh" button, status pill
  - Approved: success state, link back to dashboard
  - Rejected: shows reviewer's reason, ResubmitCard re-uploads
    proof and flips status back to pending automatically
  - Members card with add/remove (head is protected)
- /home now checks household state server-side:
  - No household → redirect /onboarding
  - Pending/rejected → status banner + link
  - Approved → full dashboard with QR balance + next pickup +
    quick-action grid
- New components:
  - MapPicker — click-to-place pin via Leaflet (CDN-loaded), drag
    to fine-tune, returns {lat, lng}
  - ProofUpload — drag-and-drop with image preview, jpg/png/pdf,
    8MB cap, file size + type validation
- API client adds me.household() and reuses existing household.*
  + uploadProof multipart helpers

Build: 12 routes compile clean, biggest first-load JS 122 kB
(/register), Wizard + Household views 5–7 kB each.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-01 18:55:38 +08:00
..