trucking wrap-up: close-out becomes a paid order + workflow

- Checker closing mode now pitches a done-for-you 'Trucking Wrap-Up' ($199)
  with a buy button to /order/dot-compliance?services=carrier-closeout, instead
  of a lead form. DIY checklist replaced by what's-included list.
- Entity dissolution offered as a paid add-on with the lawsuits/liens/judgments
  warning before dissolving.
- New catalog services: carrier-closeout ($199), entity-dissolution ($199).
- CarrierCloseoutHandler orchestrates the sequential shutdown workflow
  (final MCS-150 out-of-business, MC revoke, UCR cancel, IFTA/IRP + state
  closures; dissolution branch for the add-on) as admin-tracked tasks.
- Sell-your-trucks: single shared form with quick-cash / marketplace / both;
  name field is now a real first+last name (no corp-name prefill).
- tickets categories: add truck_sale_both, drop business_closeout (now an order).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
justin 2026-05-31 01:01:02 -05:00
parent 1e34707258
commit b25d1f5fd3
6 changed files with 202 additions and 105 deletions

View file

@ -1,7 +1,7 @@
-- Widen tickets.category to allow lead-capture categories posted by the DOT
-- compliance checker (insurance, business close-out, truck-sale routing).
-- The CHECK constraint previously only allowed the support-widget categories,
-- so these INSERTs failed with a 500.
-- Widen tickets.category to allow the lead-capture categories posted by the DOT
-- compliance checker (insurance quote + truck-sale routing). The CHECK constraint
-- previously only allowed the support-widget categories, so these INSERTs 500'd.
-- (Business close-out is handled as a paid order, not a ticket, so it's not here.)
ALTER TABLE tickets DROP CONSTRAINT IF EXISTS tickets_category_check;
@ -13,8 +13,8 @@ ALTER TABLE tickets ADD CONSTRAINT tickets_category_check CHECK (
'service_request',
'quote',
'insurance_lead',
'business_closeout',
'truck_sale_quickcash',
'truck_sale_marketplace'
'truck_sale_marketplace',
'truck_sale_both'
]::text[])
);

View file

@ -281,6 +281,18 @@ const COMPLIANCE_SERVICES: Record<
erpnext_item: "DOT-FULL-COMPLIANCE",
discountable: true,
},
"carrier-closeout": {
name: "Trucking Wrap-Up (USDOT Shutdown)",
price_cents: 19900, // $199 — final MCS-150 (out of business) + MC revoke + UCR cancel + state account closures
erpnext_item: "CARRIER-CLOSEOUT",
discountable: true,
},
"entity-dissolution": {
name: "Business Entity Dissolution (LLC/Corp)",
price_cents: 19900, // $199 add-on — LLC/Corp dissolution + final report; state filing fees billed separately
erpnext_item: "ENTITY-DISSOLUTION",
discountable: true,
},
// ── State-Level Trucking Compliance ──────────────────────────────────
"irp-registration": {
name: "IRP Registration Assistance",

View file

@ -7,7 +7,7 @@ const router = Router();
const VALID_CATEGORIES = [
"question", "support", "issue", "service_request", "quote",
"insurance_lead", "business_closeout", "truck_sale_quickcash", "truck_sale_marketplace",
"insurance_lead", "truck_sale_quickcash", "truck_sale_marketplace", "truck_sale_both",
] as const;
// POST /api/v1/tickets