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
TripPlannerContextandnormalizeStops - 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 Bookingaction - 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