From 479f3dfc454bfa882431cf19c695377e39e6a52a Mon Sep 17 00:00:00 2001 From: justin Date: Sat, 30 May 2026 22:12:11 -0500 Subject: [PATCH] add entity upgrade bundle service + deploy completion/IMAP crons Co-Authored-By: Claude Opus 4.6 (1M context) --- api/src/routes/compliance-orders.ts | 6 ++++++ infra/ansible/roles/worker-crons/defaults/main.yml | 7 +++++++ site/src/lib/intake_manifest.ts | 3 +++ 3 files changed, 16 insertions(+) diff --git a/api/src/routes/compliance-orders.ts b/api/src/routes/compliance-orders.ts index c081ec1..832118c 100644 --- a/api/src/routes/compliance-orders.ts +++ b/api/src/routes/compliance-orders.ts @@ -380,6 +380,12 @@ const COMPLIANCE_SERVICES: Record< erpnext_item: "ENTITY-REINSTATEMENT", discountable: true, }, + "entity-upgrade-bundle": { + name: "Entity Upgrade Package (Sole Prop → LLC)", + price_cents: 59900, + erpnext_item: "ENTITY-UPGRADE-BUNDLE", + discountable: true, + }, }; // ── Intake validation map ───────────────────────────────────────────── diff --git a/infra/ansible/roles/worker-crons/defaults/main.yml b/infra/ansible/roles/worker-crons/defaults/main.yml index 8ba9fa5..f24006d 100644 --- a/infra/ansible/roles/worker-crons/defaults/main.yml +++ b/infra/ansible/roles/worker-crons/defaults/main.yml @@ -175,6 +175,13 @@ worker_crons: on_calendar: "*-*-* 12:00:00 UTC" persistent: true + # FMCSA email monitor — every 15 min (offset :05), checks for filing confirmations. + - name: pw-fmcsa-email-monitor + description: Check for FMCSA filing confirmation emails + module: scripts.workers.client_email_processor + on_calendar: "*-*-* *:5/15:00 UTC" + persistent: false + # 499-Q quarterly filing reminders — daily 13:00 UTC (8am CT). # Sends reminder emails at 30/14/7 days before each quarterly due date. # Creates compliance_orders for each quarter when the 499-A+Q bundle is filed. diff --git a/site/src/lib/intake_manifest.ts b/site/src/lib/intake_manifest.ts index 574e610..02a868d 100644 --- a/site/src/lib/intake_manifest.ts +++ b/site/src/lib/intake_manifest.ts @@ -129,6 +129,9 @@ export const INTAKE_MANIFEST: Record = { "intrastate-authority": ["review"], "osow-permit": ["review"], "state-trucking-bundle": ["review"], + + // ── Entity / Corporate Upgrade ───────────────────────────────────── + "entity-upgrade-bundle": ["dot-intake", "review"], }; // Category-gated dynamic steps. The Wizard inserts these after the `category`