Step 4 What type of place will guests have
Purpose (Product)
Clarify listing scope: Captures whether guests book the entire place, a single private room, or multiple rooms in a co-living setup.
Why it matters: Determines inventory model (parent vs child/shared), downstream UX (e.g., rooms configuration), calendar/availability logic, and channel mapping behavior.
UX Flow (What the user sees)
System Flow (How it works)
User selects a listing type and clicks Next.
Frontend PATCHes the property with the chosen listing type.
On success, frontend PATCHes the user to increment onboardingStep.
Frontend refreshes property list (GET /api/properties) and navigates to the next onboarding screen.
On API error, the user remains on the current step; no onboardingStep increment or navigation occurs.
APIs Called
PATCH /api/properties/{propertyId}
Payload:
{
"propertyDetails": {
"listingType": "parent" | "child" | "shared"
}
}Response: Updated property
Errors: 400 (validation), 401/403 (authz), 404 (property not found), 500
Idempotent for same value
PATCH /api/users/{userId}
Payload:
- Response: Updated user - Errors: 400, 401/403, 404, 500
GET /api/properties
Purpose: Refresh property list post-update