Closed look on webhook calling ofrm update scripts - no live updated to sevicem8 yet though. Create project-progress as well.
This commit is contained in:
@@ -0,0 +1,73 @@
|
||||
# ServiceM8 Project Progress
|
||||
|
||||
## Current Quote Template → JobMaterials Pipeline
|
||||
|
||||
### Live receiver
|
||||
- `servicem8_webhook_receiver.py`
|
||||
- receives `form.response_created`
|
||||
- stores the raw webhook payload in `servicem8_webhooks.db`
|
||||
- checks incoming form responses for the Quote Template `form_uuid`
|
||||
- if matched, parses and queues the derived jobMaterials payload to:
|
||||
- `quote-template-jobmaterials-queue.jsonl`
|
||||
- does **not** perform live ServiceM8 writes at this stage
|
||||
|
||||
### Parser
|
||||
- `servicem8-quote-template-parser.py`
|
||||
- parses Quote Template `field_data`
|
||||
- extracts:
|
||||
- description of works
|
||||
- `Item 1..12` include lines
|
||||
- `Works excluded 1..4` exclude lines
|
||||
- extra descriptive include rows such as labour/scaffolding/equipment fields
|
||||
- builds normalized `desired_job_materials`
|
||||
|
||||
### Create/apply script
|
||||
- `servicem8-create-jobmaterials-from-form-response.py`
|
||||
- standalone script
|
||||
- consumes a Quote Template form response JSON payload
|
||||
- builds ServiceM8 Job Material API payloads
|
||||
- runs in **dry-run by default**
|
||||
- supports live create later with `--apply`
|
||||
- records created/generated mappings into local state DB
|
||||
|
||||
### Local state tracking
|
||||
- `servicem8_quote_materials_state.db`
|
||||
- local SQLite DB for tracking generated jobMaterials
|
||||
- intended fields include:
|
||||
- job UUID
|
||||
- form response UUID
|
||||
- created job material UUID
|
||||
- kind/source metadata
|
||||
|
||||
### Queue/prepared output
|
||||
- `quote-template-jobmaterials-queue.jsonl`
|
||||
- lightweight queue/output file written by webhook stage
|
||||
- contains parsed/prepared `desired_job_materials` objects
|
||||
- no live update performed yet
|
||||
|
||||
### Inspector
|
||||
- `servicem8_inspector.py`
|
||||
- read-only browser for webhook DB
|
||||
- now also includes visibility of generated-materials state DB
|
||||
|
||||
## Current Status
|
||||
Everything is staged and connected up to the point of:
|
||||
- webhook receive
|
||||
- UUID trigger check
|
||||
- form parsing
|
||||
- local queueing
|
||||
- dry-run jobMaterial payload generation
|
||||
- local state DB support
|
||||
- inspector visibility
|
||||
|
||||
## Not Yet Enabled
|
||||
- actual live POST creation of Job Materials into ServiceM8 during webhook processing
|
||||
- any automatic update/delete reconciliation against live ServiceM8 records
|
||||
|
||||
## Design Notes
|
||||
- Heavy lifting is intentionally kept **out of the live webhook handler**.
|
||||
- The webhook handler is used only for:
|
||||
- capture
|
||||
- UUID gate
|
||||
- parse/prepare/queue
|
||||
- Live ServiceM8 mutation remains a separate step/script for safety.
|
||||
Reference in New Issue
Block a user