# Schema Reference — Hospitality

Vertical schema for `businessType: "hospitality"` — hotels, B&Bs, guesthouses, serviced apartments.

This reference extends the base schema. All base node types remain valid. Load `schema-base.md` first.

When loading this reference, confirm: "Using schema-base + schema-hospitality".

---

## Additional Node Types

| Entity | Neo4j Label | Schema.org Type | Required Properties |
|--------|-------------|-----------------|---------------------|
| Reservation | `Reservation` | `schema:LodgingReservation` | `accountId`, `guest` (id), `checkInDate`, `checkOutDate`, `roomType`, `totalPrice`, `reservationStatus` |
| Room | `Room` | `schema:Accommodation` | `accountId`, `name`, `roomType`, `capacity`, `pricePerNight`, `amenities` |
| GuestProfile | `GuestProfile` | `schema:Person` (extended) | Base Person properties + `dietaryRequirements`, `preferences`, `loyaltyPoints` |

### GuestProfile vs base Person

`GuestProfile` extends the base `Person` type with hospitality-specific properties. When creating a guest record, use `GuestProfile` as an additional label on the `Person` node — the guest is still a `Person` for base queries, but the extra label allows hospitality-specific property queries.

---

## Relationship Patterns

```
(:Reservation)-[:FOR_ROOM]->(:Room)
(:Reservation)-[:BOOKED_BY]->(:Person)
(:Invoice)-[:FOR_RESERVATION]->(:Reservation)
```
