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:
parent
4c023b85d1
commit
aad45dc827
9 changed files with 195 additions and 0 deletions
|
|
@ -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 {
|
||||
|
|
|
|||
22
site/src/pages/order/boc3-filing.astro
Normal file
22
site/src/pages/order/boc3-filing.astro
Normal 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>
|
||||
22
site/src/pages/order/dot-audit-prep.astro
Normal file
22
site/src/pages/order/dot-audit-prep.astro
Normal 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>
|
||||
22
site/src/pages/order/dot-drug-alcohol.astro
Normal file
22
site/src/pages/order/dot-drug-alcohol.astro
Normal 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>
|
||||
22
site/src/pages/order/dot-full-compliance.astro
Normal file
22
site/src/pages/order/dot-full-compliance.astro
Normal 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>
|
||||
22
site/src/pages/order/dot-registration.astro
Normal file
22
site/src/pages/order/dot-registration.astro
Normal 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>
|
||||
22
site/src/pages/order/mc-authority.astro
Normal file
22
site/src/pages/order/mc-authority.astro
Normal 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>
|
||||
22
site/src/pages/order/mcs150-update.astro
Normal file
22
site/src/pages/order/mcs150-update.astro
Normal 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>
|
||||
22
site/src/pages/order/ucr-registration.astro
Normal file
22
site/src/pages/order/ucr-registration.astro
Normal 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>
|
||||
Loading…
Add table
Add a link
Reference in a new issue