All docs moved with git mv so --follow preserves history. Flattens the single-folder layout into goal-oriented folders and adds a README.md index at every level. - docs/README.md — new landing page with "I want to…" intent table - docs/architecture/ — overview, data-model, app-design - docs/features/ — billing-payments, cpe-management, vision-ocr, flow-editor - docs/reference/ — erpnext-item-diff, legacy-wizard/ - docs/archive/ — HANDOFF-2026-04-18, MIGRATION, status-snapshots/ - docs/assets/ — pptx sources, build scripts (fixed hardcoded path) - roadmap.md gains a "Modules in production" section with clickable URLs for every ops/tech/portal route and admin surface - Phase 4 (Customer Portal) flipped to "Largely Shipped" based on audit of services/targo-hub/lib/payments.js (16 endpoints, webhook, PPA cron, Klarna BNPL all live) - Archive files get an "ARCHIVED" banner so stale links inside them don't mislead readers Code comments + nginx configs rewritten to use new doc paths. Root README.md documentation table replaced with intent-oriented index. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
4.6 KiB
4.6 KiB
Gigafibre FSM — Data Structures & Customer Flows
A unified document defining the ERPNext data structure and the "Lead to Live" customer flow architecture.
1. ERPNext Data Schema
All operational data revolves around the Customer, connected closely to their physical service location and the equipment provided.
┌───────────────────────────────────────────────────────────┐
│ Customer │
│ customer_group (Résidentiel/Comm.), legacy_customer_id │
└──────────┬─────────────────────────┬──────────────────────┘
│ │
▼ ▼
┌─────────────────────┐ ┌─────────────────────────┐
│ Service Location │ │ Sales Invoice │
│ (delivery address) │ │ Payment Entry │
│ connection/olt_port│ └─────────────────────────┘
└──────┬──────────────┘
│
├──────────────────────────────────┐
▼ ▼
┌──────────────────┐ ┌──────────────────────┐
│ Service │ │ Service Equipment │
│ Subscription │ │ (ONT/Routeur/TV) │
│ (Internet/TV) │ │ mac/serial/wifi/sip │
└──────────────────┘ └──────────────────────┘
│
▼
┌──────────────────────────────────────────────────┐
│ Dispatch Job │
│ (Tech installs equipment at Service Location) │
│ Status: Scheduled → In Progress → Completed │
└──────────────────────────────────────────────────┘
2. The Customer Journey (Lead to Live)
This flow replaces the legacy PHP quote builder. It operates atomically to ensure equipment and ports are correctly reserved.
Step 1: Address Qualification
- Website hits
/api/address. - Queries the
fiber_availabilitytable (coupled with pg_trgm fuzzy matching against RQA databases). - Identifies the specific
fibre_idand checks port availability in real time.
Step 2: Plan & Price Selection
- Prices dynamically populate based on the
zone_tarifairetied to the OLT Port.
Step 3: Payment Intent (Stripe)
- Stripe Elements capture CC info for a SetupIntent.
- We do not charge the card until the Dispatch Job is confirmed by the technician.
Step 4: Atomic Order Creation
Through targo-hub or n8n, a successful sign-up generates exactly:
Customer(Jane Doe)Service Location(Address, linked to OLT Port)Service Subscription(Internet Plan, TV Package)Service Equipment(Empty templates waiting for tech to scan serials)Dispatch Job(Triggered for Installation, waiting for tech assignment)
Step 5: Hardware Auto-Provisioning
- When the order is generated, custom fields on
Service Equipment(likecustom_wifi_ssidandcustom_sip_username) are prefilled in ERPNext. - The technician arrives, installs the TP-Link ONT, and scans its serial/MAC.
- The ONT boots up and hits the TR-369 server (Oktopus).
targo-hubacts as the TR-069 proxy, matching the MAC to ERPNext, reading the custom provisioning profile, and automatically injecting the WiFi and SIP credentials onto the modem.
3. Ops App "Client 360" View
The ClientDetailPage in the Ops App acts as a unified console pulling from these relationships.
It displays:
- Standard Frappe Customer metadata + Custom Flags (PPA Enabled).
- A map and grid of the
Service Location. - Live diagnostic queries to
targo-hubproviding real-time data on the linkedService Equipment. - The historical thread of
IssueandDispatch Jobevents. - Inline Odoo-style editing for rapid support.