MolinoPro

20260421_trips-next-steps.locked

Master Codebase Guidebook
Markdown + HTML Dev-Docs Renderer - Frontend Client Module

Default Index
Open README.md
Root: README.mdnext-steps
Milestones
H1Trips Next Steps

Status: locked execution plan

This note captures the shortest safe implementation path for the current Trips stage.

H2Phase 1

Unblock the UX.

  • Keep the current sidebar temporarily
  • Build an inline editor inside TripDetail
  • Reuse TripPlannerContext and normalizeStops
  • Add an edit mode toggle

Result:

  • same logic
  • better UX
  • no regression risk
H2Phase 2

Lock the hotel rule.

Derived field:

hotelPolicy =
  | "managed_blocked_inventory"
  | "estimate_only"
  | "external_links_only"

Logic:

if (daysUntilStart > 40) {
  hotelPolicy = "managed_blocked_inventory";
} else {
  hotelPolicy = "external_links_only";
}

UI:

  • show room allocation only when managed
  • show booking links only when external
H2Phase 3

Create the booking layer.

  • Add BookingBundle
  • Add a Request Booking action
  • Create the bundle before execution
  • Move status to pending after the request
H2Phase 4

Ship Apps Script highway endpoints.

  • /export/pdf
  • /export/email
  • /export/calendar
  • /export/booking-doc

Flow:

Next.js action -> API route -> Apps Script -> Google output -> metadata -> Prisma

H2Phase 5

Use FareHarbor manual execution by default.

  • Treat FareHarbor as an execution tool, not the backbone
  • Confirm bookings in the dashboard
  • Update status in the app after confirmation
H2Phase 6

Add FareHarbor calendar validation later.

  • Check availability
  • Validate schedulability
  • Do not automate booking yet
H2Further reading