app

Local-first trade for farms and co-ops
git clone https://radroots.dev/git/app.git
Log | Files | Refs | README | LICENSE

0023_order_workflow_display_projection.sql (1145B)


      1 ALTER TABLE orders
      2     ADD COLUMN workflow_agreement TEXT NOT NULL DEFAULT 'ordered' CHECK (
      3         workflow_agreement IN ('ordered', 'confirmed', 'declined', 'cancelled', 'needs_review')
      4     );
      5 
      6 ALTER TABLE orders
      7     ADD COLUMN workflow_inventory TEXT NOT NULL DEFAULT 'needs_review' CHECK (
      8         workflow_inventory IN ('available', 'reserved', 'sold_out', 'needs_review')
      9     );
     10 
     11 ALTER TABLE orders
     12     ADD COLUMN workflow_provenance_source TEXT NOT NULL DEFAULT 'unknown' CHECK (
     13         workflow_provenance_source IN ('app', 'cli', 'relay', 'local_events', 'unknown')
     14     );
     15 
     16 ALTER TABLE orders
     17     ADD COLUMN workflow_provenance_last_event_id TEXT;
     18 
     19 UPDATE orders
     20 SET
     21     workflow_agreement = CASE status
     22         WHEN 'scheduled' THEN 'confirmed'
     23         WHEN 'packed' THEN 'confirmed'
     24         WHEN 'completed' THEN 'confirmed'
     25         WHEN 'declined' THEN 'declined'
     26         ELSE 'ordered'
     27     END,
     28     workflow_inventory = CASE status
     29         WHEN 'scheduled' THEN 'reserved'
     30         WHEN 'packed' THEN 'reserved'
     31         WHEN 'completed' THEN 'reserved'
     32         WHEN 'declined' THEN 'available'
     33         ELSE 'needs_review'
     34     END;