paddington-eurostar/more_prices.md
Edward Betts 89a536dfd3 Add Eurostar Plus prices and NR advance fare support
- Eurostar scraper now fetches both Standard and Plus (PLUS class code)
  prices/seats in a single API call; each service dict gains plus_price
  and plus_seats fields
- GWR fares scraper gains fetch_advance() which makes two sets of
  paginated calls (standard advance + first-class advance) and returns
  cheapest per departure; shared _run_pages() generator reduces
  duplication in fetch()
- New /api/advance_fares/<station_crs>/<travel_date> endpoint returns
  advance fares as JSON, cached for 24 hours
- Results page gains NR ticket selector (Walk-on / Std Advance / 1st
  Advance) and Eurostar selector (Standard / Plus); total column is
  JS-computed from the selected combination with cheapest/priciest
  highlighting
- Load advance prices button fetches the API lazily; if advance fares
  are already cached they are embedded in the page and applied on load
  so the button is hidden automatically

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-11 16:22:24 +01:00

17 lines
1 KiB
Markdown

Right now the site just shows National Rail (NR) walk on fares in Standard Class and Eurostar Standard prices.
I'd like to see more prices, specifically:
Eurostar Plus
National Rail Standard advance tickets
National Rail First class advance tickets
Optionally we could include First class walk on fares, although they'll be expensive, I wouldn't never buy one.
Our existing Eurostar scraper is already getting the Eurostar Plus prices, we could have a way to make them appear in the UI.
Getting NR advanced fares is more tricky, we need to scrape the GWR booking system, it'll take multiple requests. We shouldn't get this price data by default. We could have a button to get the extra GWR prices then for each NR service show standard walk on, standard advance and 1st class advance prices.
Not sure what to do about total price column, lots of combinations now. Maybe selectors so the user can pick which type of ticket they want for NR plus the type for Eurostar.
I hope that makes some sense, can you have a go implementing. Ask me if I've left anything out.