Overview
The Tourist Profiles API manages detailed profile information for tourist users. Each tourist profile is linked to a user account and contains travel preferences, interests, activity levels, and personalization settings.
Tourist Profile Object
The Tourist Profile object extends user information with travel-specific data:
References the user account (primary key)
Tourist’s current location or home base
Personal biography or description
Date when the tourist joined the platform
Achievement badge or membership level
Preferred travel style (e.g., adventurous, relaxed, cultural)
Preferred trip types (e.g., solo, family, group)
Preferred travel pace and company preferences
activityLevel
TouristProfileActivityLevel
Activity level preference (enum value)
Dietary restrictions or preferences
planningLevel
TouristProfilePlanningLevel
Planning style preference (enum value)
Transportation preferences
Photography preferences during tours
Accessibility requirements
Additional notes or special requests
URL to profile avatar image
URL to profile cover image
Create Tourist Profile
curl -X POST http://localhost:8080/api/tourist_profiles \
-H "Content-Type: application/json" \
-d '{
"userId": 1,
"location": "Mexico City, Mexico",
"bio": "Passionate traveler exploring cultural heritage sites and local cuisine.",
"memberSince": "2024-03-11",
"badge": "Explorer",
"travelStyle": "Cultural & Culinary",
"tripType": "Solo & Small Groups",
"paceAndCompany": "Moderate pace, enjoy meeting locals",
"activityLevel": "MODERATE",
"groupPreference": "Small groups (4-8 people)",
"dietaryPreferences": "Vegetarian",
"planningLevel": "FLEXIBLE",
"amenities": "WiFi, comfortable walking shoes recommended",
"transport": "Public transport & walking",
"photoPreference": "Love taking photos at scenic spots",
"accessibility": "None",
"additionalNotes": "Interested in off-the-beaten-path experiences",
"avatarUrl": "https://example.com/avatars/maria.jpg",
"coverUrl": "https://example.com/covers/maria-cover.jpg"
}'
User ID to create profile for (must reference existing user)
Pace and company preferences
activityLevel
TouristProfileActivityLevel
Activity level
planningLevel
TouristProfilePlanningLevel
Planning level preference
Transportation preferences
Accessibility requirements
Response
{
"userId": 1,
"location": "Mexico City, Mexico",
"bio": "Passionate traveler exploring cultural heritage sites and local cuisine.",
"memberSince": "2024-03-11",
"badge": "Explorer",
"travelStyle": "Cultural & Culinary",
"tripType": "Solo & Small Groups",
"paceAndCompany": "Moderate pace, enjoy meeting locals",
"activityLevel": "MODERATE",
"groupPreference": "Small groups (4-8 people)",
"dietaryPreferences": "Vegetarian",
"planningLevel": "FLEXIBLE",
"amenities": "WiFi, comfortable walking shoes recommended",
"transport": "Public transport & walking",
"photoPreference": "Love taking photos at scenic spots",
"accessibility": "None",
"additionalNotes": "Interested in off-the-beaten-path experiences",
"avatarUrl": "https://example.com/avatars/maria.jpg",
"coverUrl": "https://example.com/covers/maria-cover.jpg",
"updatedAt": "2024-03-11T10:30:00Z"
}
Get All Tourist Profiles
curl -X GET http://localhost:8080/api/tourist_profiles
Retrieves all tourist profiles in the system.
Response
[
{
"userId": 1,
"location": "Mexico City, Mexico",
"bio": "Passionate traveler exploring cultural heritage sites and local cuisine.",
"memberSince": "2024-03-11",
"badge": "Explorer",
"travelStyle": "Cultural & Culinary",
"activityLevel": "MODERATE",
"avatarUrl": "https://example.com/avatars/maria.jpg"
}
]
Get Tourist Profile by ID
curl -X GET http://localhost:8080/api/tourist_profiles/1
Retrieves a specific tourist profile by user ID.
Response
{
"userId": 1,
"location": "Mexico City, Mexico",
"bio": "Passionate traveler exploring cultural heritage sites and local cuisine.",
"memberSince": "2024-03-11",
"badge": "Explorer",
"travelStyle": "Cultural & Culinary",
"tripType": "Solo & Small Groups",
"paceAndCompany": "Moderate pace, enjoy meeting locals",
"activityLevel": "MODERATE",
"groupPreference": "Small groups (4-8 people)",
"dietaryPreferences": "Vegetarian",
"planningLevel": "FLEXIBLE",
"amenities": "WiFi, comfortable walking shoes recommended",
"transport": "Public transport & walking",
"photoPreference": "Love taking photos at scenic spots",
"accessibility": "None",
"additionalNotes": "Interested in off-the-beaten-path experiences",
"avatarUrl": "https://example.com/avatars/maria.jpg",
"coverUrl": "https://example.com/covers/maria-cover.jpg",
"updatedAt": "2024-03-11T10:30:00Z"
}
Update Tourist Profile
curl -X PUT http://localhost:8080/api/tourist_profiles/1 \
-H "Content-Type: application/json" \
-d '{
"userId": 1,
"location": "Mexico City, Mexico",
"bio": "Experienced traveler with a passion for cultural immersion and authentic local cuisine.",
"travelStyle": "Cultural Immersion",
"activityLevel": "HIGH",
"badge": "Advanced Explorer",
"updatedAt": "2024-03-15T14:20:00Z"
}'
Updates an existing tourist profile.
Response
{
"userId": 1,
"location": "Mexico City, Mexico",
"bio": "Experienced traveler with a passion for cultural immersion and authentic local cuisine.",
"memberSince": "2024-03-11",
"badge": "Advanced Explorer",
"travelStyle": "Cultural Immersion",
"tripType": "Solo & Small Groups",
"paceAndCompany": "Moderate pace, enjoy meeting locals",
"activityLevel": "HIGH",
"groupPreference": "Small groups (4-8 people)",
"dietaryPreferences": "Vegetarian",
"planningLevel": "FLEXIBLE",
"amenities": "WiFi, comfortable walking shoes recommended",
"transport": "Public transport & walking",
"photoPreference": "Love taking photos at scenic spots",
"accessibility": "None",
"additionalNotes": "Interested in off-the-beaten-path experiences",
"avatarUrl": "https://example.com/avatars/maria.jpg",
"coverUrl": "https://example.com/covers/maria-cover.jpg",
"updatedAt": "2024-03-15T14:20:00Z"
}
Delete Tourist Profile
curl -X DELETE http://localhost:8080/api/tourist_profiles/1
Deletes a tourist profile from the system.
Response
{
"message": "Tourist profile deleted successfully"
}