Add DOT service intake pages and manifest entries

8 new Astro intake pages for DOT services:
mcs150-update, boc3-filing, ucr-registration, dot-registration,
mc-authority, dot-drug-alcohol, dot-audit-prep, dot-full-compliance.

All use entity + review wizard steps (admin-assisted services).
Added to INTAKE_MANIFEST and SERVICE_META with correct pricing.

Fixes 404 on /order/mcs150-update?order=CO-xxx from confirmation emails.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
justin 2026-05-29 00:02:47 -05:00
parent 4c023b85d1
commit aad45dc827
9 changed files with 195 additions and 0 deletions

View file

@ -100,6 +100,16 @@ export const INTAKE_MANIFEST: Record<string, IntakeStep[]> = {
"entity", "category", "officer", "jurisdiction", "history",
"dc_agent", "calea", "review", "payment",
],
// ── DOT / FMCSA Motor Carrier Services ──────────────────────────
"mcs150-update": ["entity", "review", "payment"],
"boc3-filing": ["entity", "review", "payment"],
"ucr-registration": ["entity", "review", "payment"],
"dot-registration": ["entity", "review", "payment"],
"mc-authority": ["entity", "review", "payment"],
"dot-drug-alcohol": ["entity", "review", "payment"],
"dot-audit-prep": ["entity", "review", "payment"],
"dot-full-compliance": ["entity", "review", "payment"],
};
// Category-gated dynamic steps. The Wizard inserts these after the `category`
@ -134,6 +144,15 @@ export const SERVICE_META: Record<string, { name: string; price_cents: number }>
"new-carrier-bundle": { name: "New Carrier Onboarding Bundle", price_cents: 179900 },
"foreign-qualification-single": { name: "Foreign Qualification (One State)", price_cents: 14900 },
"foreign-qualification-multi": { name: "Foreign Qualification (Multi-State)", price_cents: 9900 },
// DOT / FMCSA
"mcs150-update": { name: "MCS-150 Biennial Update", price_cents: 6900 },
"boc3-filing": { name: "BOC-3 Process Agent Filing", price_cents: 8900 },
"ucr-registration": { name: "UCR Annual Registration", price_cents: 6900 },
"dot-registration": { name: "New USDOT Number Registration", price_cents: 8900 },
"mc-authority": { name: "MC Operating Authority Application", price_cents: 34900 },
"dot-drug-alcohol": { name: "DOT Drug & Alcohol Compliance Program", price_cents: 14900 },
"dot-audit-prep": { name: "New Entrant Safety Audit Preparation", price_cents: 39900 },
"dot-full-compliance": { name: "DOT Full Compliance Bundle", price_cents: 49900 },
};
export function formatUSD(cents: number): string {

View file

@ -0,0 +1,22 @@
---
import Base from "../../layouts/Base.astro";
import Wizard from "../../components/intake/Wizard.astro";
import { INTAKE_MANIFEST, SERVICE_META } from "../../lib/intake_manifest";
const slug = "boc3-filing";
const steps = INTAKE_MANIFEST[slug];
const meta = SERVICE_META[slug];
const title = meta ? `Order ${meta.name}` : "Order";
const description = "Designate a process agent in all 48 states plus DC.";
---
<Base title={title} description={description}>
<main>
<section class="pw-order-intro">
<h1>{meta?.name}</h1>
<p class="pw-desc">{description}</p>
</section>
<Wizard service_slug={slug} steps={steps ?? ["entity", "review", "payment"]} title={meta?.name ?? slug} />
</main>
</Base>

View file

@ -0,0 +1,22 @@
---
import Base from "../../layouts/Base.astro";
import Wizard from "../../components/intake/Wizard.astro";
import { INTAKE_MANIFEST, SERVICE_META } from "../../lib/intake_manifest";
const slug = "dot-audit-prep";
const steps = INTAKE_MANIFEST[slug];
const meta = SERVICE_META[slug];
const title = meta ? `Order ${meta.name}` : "Order";
const description = "Prepare for your 18-month FMCSA safety audit.";
---
<Base title={title} description={description}>
<main>
<section class="pw-order-intro">
<h1>{meta?.name}</h1>
<p class="pw-desc">{description}</p>
</section>
<Wizard service_slug={slug} steps={steps ?? ["entity", "review", "payment"]} title={meta?.name ?? slug} />
</main>
</Base>

View file

@ -0,0 +1,22 @@
---
import Base from "../../layouts/Base.astro";
import Wizard from "../../components/intake/Wizard.astro";
import { INTAKE_MANIFEST, SERVICE_META } from "../../lib/intake_manifest";
const slug = "dot-drug-alcohol";
const steps = INTAKE_MANIFEST[slug];
const meta = SERVICE_META[slug];
const title = meta ? `Order ${meta.name}` : "Order";
const description = "Consortium enrollment, written policy, and DER designation.";
---
<Base title={title} description={description}>
<main>
<section class="pw-order-intro">
<h1>{meta?.name}</h1>
<p class="pw-desc">{description}</p>
</section>
<Wizard service_slug={slug} steps={steps ?? ["entity", "review", "payment"]} title={meta?.name ?? slug} />
</main>
</Base>

View file

@ -0,0 +1,22 @@
---
import Base from "../../layouts/Base.astro";
import Wizard from "../../components/intake/Wizard.astro";
import { INTAKE_MANIFEST, SERVICE_META } from "../../lib/intake_manifest";
const slug = "dot-full-compliance";
const steps = INTAKE_MANIFEST[slug];
const meta = SERVICE_META[slug];
const title = meta ? `Order ${meta.name}` : "Order";
const description = "MCS-150 + BOC-3 + UCR + Drug & Alcohol + Audit Prep.";
---
<Base title={title} description={description}>
<main>
<section class="pw-order-intro">
<h1>{meta?.name}</h1>
<p class="pw-desc">{description}</p>
</section>
<Wizard service_slug={slug} steps={steps ?? ["entity", "review", "payment"]} title={meta?.name ?? slug} />
</main>
</Base>

View file

@ -0,0 +1,22 @@
---
import Base from "../../layouts/Base.astro";
import Wizard from "../../components/intake/Wizard.astro";
import { INTAKE_MANIFEST, SERVICE_META } from "../../lib/intake_manifest";
const slug = "dot-registration";
const steps = INTAKE_MANIFEST[slug];
const meta = SERVICE_META[slug];
const title = meta ? `Order ${meta.name}` : "Order";
const description = "Register a new USDOT number with FMCSA.";
---
<Base title={title} description={description}>
<main>
<section class="pw-order-intro">
<h1>{meta?.name}</h1>
<p class="pw-desc">{description}</p>
</section>
<Wizard service_slug={slug} steps={steps ?? ["entity", "review", "payment"]} title={meta?.name ?? slug} />
</main>
</Base>

View file

@ -0,0 +1,22 @@
---
import Base from "../../layouts/Base.astro";
import Wizard from "../../components/intake/Wizard.astro";
import { INTAKE_MANIFEST, SERVICE_META } from "../../lib/intake_manifest";
const slug = "mc-authority";
const steps = INTAKE_MANIFEST[slug];
const meta = SERVICE_META[slug];
const title = meta ? `Order ${meta.name}` : "Order";
const description = "Apply for common or contract carrier operating authority.";
---
<Base title={title} description={description}>
<main>
<section class="pw-order-intro">
<h1>{meta?.name}</h1>
<p class="pw-desc">{description}</p>
</section>
<Wizard service_slug={slug} steps={steps ?? ["entity", "review", "payment"]} title={meta?.name ?? slug} />
</main>
</Base>

View file

@ -0,0 +1,22 @@
---
import Base from "../../layouts/Base.astro";
import Wizard from "../../components/intake/Wizard.astro";
import { INTAKE_MANIFEST, SERVICE_META } from "../../lib/intake_manifest";
const slug = "mcs150-update";
const steps = INTAKE_MANIFEST[slug];
const meta = SERVICE_META[slug];
const title = meta ? `Order ${meta.name}` : "Order";
const description = "FMCSA biennial update of company profile, fleet size, and mileage.";
---
<Base title={title} description={description}>
<main>
<section class="pw-order-intro">
<h1>{meta?.name}</h1>
<p class="pw-desc">{description}</p>
</section>
<Wizard service_slug={slug} steps={steps ?? ["entity", "review", "payment"]} title={meta?.name ?? slug} />
</main>
</Base>

View file

@ -0,0 +1,22 @@
---
import Base from "../../layouts/Base.astro";
import Wizard from "../../components/intake/Wizard.astro";
import { INTAKE_MANIFEST, SERVICE_META } from "../../lib/intake_manifest";
const slug = "ucr-registration";
const steps = INTAKE_MANIFEST[slug];
const meta = SERVICE_META[slug];
const title = meta ? `Order ${meta.name}` : "Order";
const description = "Unified Carrier Registration for interstate carriers.";
---
<Base title={title} description={description}>
<main>
<section class="pw-order-intro">
<h1>{meta?.name}</h1>
<p class="pw-desc">{description}</p>
</section>
<Wizard service_slug={slug} steps={steps ?? ["entity", "review", "payment"]} title={meta?.name ?? slug} />
</main>
</Base>