Skip to content

ReserveCalifornia provider ​

User stories ​

  • Campers discover California state parks and their campgrounds in the existing search.
  • Campers monitor available overnight campsites and receive links to the correct booking page.
  • Operators refresh provider metadata through the existing ingestion worker.

Requirements ​

  • Implement the async BaseProvider interface without importing the legacy CLI.
  • Use the current Tyler-hosted ReserveCalifornia RDR API, not the retired calirdr.usedirect.com host.
  • Preserve upstream place, facility, and unit IDs as strings; register provider ID 2.
  • Interpret scan end_date as check-out, excluding that night; bound grid requests and aggregate dates across responses.
  • Return only online-bookable, free overnight inventory; exclude blocked, walk-in, locked, and lottery inventory.
  • Translate provider models to CampsiteDTO, preserving equipment, minimum stays, and raw classification metadata without inventing capacity or electrical hookups.
  • Refresh parks, campgrounds, and search rows idempotently and keep provider IDs isolated when upstream IDs overlap.
  • Retire missing records without deleting scans, omit hidden/unbookable records from search, and commit metadata with its search index atomically.
  • Surface HTTP 200 application rejections as failures and release the actual HTTP connection pool on client shutdown.
  • Include deterministic synthetic regression fixtures and verify the public API separately; never store reservation identifiers or personal data in fixtures.
  • Seed the provider through an Alembic data migration and document usage and validation.
  • Refuse seed rollback while dependent metadata, search rows, or scan targets exist.