Skip to main content

User Profile

The user profile system manages user preferences, loyalty programs, and personalization settings.

Overview

User profiles store:

  • Personal Information — Name, email, phone, address
  • Travel Preferences — Accommodation, flight, and transport preferences
  • Loyalty Programs — Airline and hotel loyalty memberships
  • Documents — Passport and travel document information

Source Code

ComponentLocation
Usermodels/database_entities/user.py
UserServicecore/services/user_service.py
UserPreferencemodels/database_entities/user_preference.py
UserLoyaltyProgrammodels/database_entities/user_loyalty_program.py
LoyaltyProgramServicecore/services/loyalty_program_service.py
User Routerapi/v1/routers/user_router.py

Preferences

User preferences are stored in UserPreference and used for TTV Scoring. See TTV Scoring for how preferences evaluate trip options.

Key attributes:

  • definition_id — Links to preference type (e.g., MaxPricePreference)
  • condition_value — Configuration (e.g., {"max_price": 200})
  • weight — Importance multiplier (-100 to 100)

Loyalty Programs

Loyalty memberships are stored in UserLoyaltyProgram, linking users to LoyaltyProgram definitions.

Supported program types:

  • AIRLINE — Aeroplan, Miles & More, etc.
  • HOTEL — Marriott Bonvoy, Hilton Honors, etc.
  • OTHER — Rail, car rental programs

API Endpoints

EndpointMethodDescription
/api/users/profileGETGet user profile with preferences
/api/users/profilePATCHUpdate profile fields
/api/users/preferencesGETList user preferences
/api/users/preferencesPUTUpdate preferences batch
/api/loyalty-programs/userGETList user loyalty programs
/api/loyalty-programs/userPOSTAdd loyalty program

See the OpenAPI spec for full request/response schemas.