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¶
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_categoryonadventure_categoryidx_trip_regiononregion_ididx_trip_searchonname, 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_dateontrip_id, trip_dateidx_sched_availontrip_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_tripontrip_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.
POST /trips -- Create a new trip definition¶
Creates a new trip in DRAFT status. The trip must be explicitly
GET /trips/{trip_id} -- Get trip details¶
Returns the full trip definition including all metadata.
PATCH /trips/{trip_id} -- Update trip details¶
Partially updates a trip definition. Only provided fields are modified.
GET /trips/{trip_id}/schedule -- Get scheduled departures¶
Returns all scheduled departures for a trip, optionally filtered
POST /trips/{trip_id}/schedule -- Add a scheduled departure¶
Adds a new departure date and time for this trip. The trip must be
GET /trips/{trip_id}/pricing -- Get pricing tiers¶
Returns all pricing tiers configured for the specified trip.
PUT /trips/{trip_id}/pricing -- Replace pricing tiers¶
Replaces all pricing tiers for the trip. At minimum, a STANDARD tier
GET /trips/{trip_id}/requirements -- Get trip requirements¶
Returns gear, certification, and fitness requirements for the trip.
GET /regions -- List operating regions¶
Returns all regions where NovaTrek operates adventure trips.
GET /activity-types -- List available activity types¶
Returns the enumerated list of supported activity types with
Consuming Applications¶
| Application | Screens Using This Service |
|---|---|
| Guest Portal | Trip Browser, Booking Flow |
| Adventure App | My Reservations |