Skip to content

svc-trip-catalog

NovaTrek Adventures - Trip Catalog Service  |  Product Catalog  |  v2.4.0  |  NovaTrek Platform Engineering

Manages adventure trip definitions, scheduling, pricing, and availability

Swagger UI Download OpenAPI Spec


Integration Context

svc-trip-catalog C4 context diagram

Data Store

Overview

Property Detail
Engine PostgreSQL 15
Schema catalog
Tables trips, trip_schedules, pricing_tiers, requirements, regions, activity_types
Estimated Volume ~50 catalog updates/day, ~10K availability reads/day
Connection Pool min 5 / max 25 / idle timeout 10min
Backup Strategy Daily pg_dump, 14-day retention

Key Features

  • Full-text search index on trip name and description
  • Materialized view for availability calendar
  • JSONB columns for flexible requirement definitions

Table Reference

trips

Master adventure trip catalog entries

Column Type Constraints
trip_id UUID PK
name VARCHAR(200) NOT NULL
description TEXT NOT NULL
adventure_category VARCHAR(50) NOT NULL
region_id UUID NOT NULL, FK -> regions
difficulty_level SMALLINT NOT NULL, CHECK (1-5)
duration_hours DECIMAL(4,1) NOT NULL
min_participants INTEGER NOT NULL, DEFAULT 1
max_participants INTEGER NOT NULL
base_price DECIMAL(10,2) NOT NULL
currency CHAR(3) DEFAULT 'USD'
active BOOLEAN NOT NULL, DEFAULT TRUE
created_at TIMESTAMPTZ NOT NULL
updated_at TIMESTAMPTZ NOT NULL

Indexes:

  • idx_trip_category on adventure_category
  • idx_trip_region on region_id
  • idx_trip_search on name, description (GIN (tsvector))

trip_schedules

Available dates and time slots for each trip

Column Type Constraints
schedule_id UUID PK
trip_id UUID NOT NULL, FK -> trips
trip_date DATE NOT NULL
start_time TIME NOT NULL
available_spots INTEGER NOT NULL
booked_spots INTEGER NOT NULL, DEFAULT 0

Indexes:

  • idx_sched_trip_date on trip_id, trip_date
  • idx_sched_avail on trip_date, available_spots

pricing_tiers

Dynamic pricing tiers based on season, demand, and group size

Column Type Constraints
tier_id UUID PK
trip_id UUID NOT NULL, FK -> trips
tier_name VARCHAR(50) NOT NULL
multiplier DECIMAL(3,2) NOT NULL
effective_from DATE NOT NULL
effective_to DATE NULL

Indexes:

  • idx_pricing_trip on trip_id, effective_from

Solutions Affecting This Service

Ticket Solution Capabilities Date
NTK-10008 Guest Reviews and Ratings Platform CAP-1.7, CAP-1.2 2026-03-06

Endpoints (11 total)


GET /trips -- Search trips with filters

Returns a paginated list of trips matching the specified filter criteria.

View in Swagger UI

GET /trips sequence diagram

POST /trips -- Create a new trip definition

Creates a new trip in DRAFT status. The trip must be explicitly

View in Swagger UI

POST /trips sequence diagram

GET /trips/{trip_id} -- Get trip details

Returns the full trip definition including all metadata.

View in Swagger UI

GET /trips/{trip_id} sequence diagram

PATCH /trips/{trip_id} -- Update trip details

Partially updates a trip definition. Only provided fields are modified.

View in Swagger UI

PATCH /trips/{trip_id} sequence diagram

GET /trips/{trip_id}/schedule -- Get scheduled departures

Returns all scheduled departures for a trip, optionally filtered

View in Swagger UI

GET /trips/{trip_id}/schedule sequence diagram

POST /trips/{trip_id}/schedule -- Add a scheduled departure

Adds a new departure date and time for this trip. The trip must be

View in Swagger UI

POST /trips/{trip_id}/schedule sequence diagram

GET /trips/{trip_id}/pricing -- Get pricing tiers

Returns all pricing tiers configured for the specified trip.

View in Swagger UI

GET /trips/{trip_id}/pricing sequence diagram

PUT /trips/{trip_id}/pricing -- Replace pricing tiers

Replaces all pricing tiers for the trip. At minimum, a STANDARD tier

View in Swagger UI

PUT /trips/{trip_id}/pricing sequence diagram

GET /trips/{trip_id}/requirements -- Get trip requirements

Returns gear, certification, and fitness requirements for the trip.

View in Swagger UI

GET /trips/{trip_id}/requirements sequence diagram

GET /regions -- List operating regions

Returns all regions where NovaTrek operates adventure trips.

View in Swagger UI

GET /regions sequence diagram

GET /activity-types -- List available activity types

Returns the enumerated list of supported activity types with

View in Swagger UI

GET /activity-types sequence diagram

Consuming Applications

Application Screens Using This Service
Guest Portal Trip Browser, Booking Flow
Adventure App My Reservations