Skip to main content

Data Model

Understanding ABRA’s data model is essential for developers working on the platform.

Core Entities

Guest

The central entity representing a hotel guest.
Guest
├── id, uuid, name, email, phone
├── vip_status
├── external_ids (Oracle, Maestro)
└── Relationships:
    ├── has_many Reservations
    ├── has_many Preferences
    ├── has_many Celebrations
    ├── has_many Nuggets
    ├── has_many Hurdles
    ├── has_many WowMoments
    ├── has_one Bio
    └── belongs_to Hotel

Reservation

A guest’s booked stay.
Reservation
├── id, check_in, check_out, status
├── external_id, confirmation_number
└── Relationships:
    ├── belongs_to Hotel
    ├── many_to_many Guests
    ├── has_many ReservationRooms
    └── has_many Notes

Guest Intelligence Entities

Preference    → Guest preferences (room, dietary, service)
Celebration   → Special occasions (birthday, anniversary)
Nugget        → Staff-captured insights
Touchpoint    → Interaction records
WowMoment     → Exceptional experiences created
Hurdle        → Guest issues with resolution tracking

Entity Relationships Diagram

Detailed ERD coming soon

Key Tables

TableDescription
guestsGuest profiles
reservationsBookings
reservation_guestsMany-to-many pivot
preferencesGuest preferences
celebrationsSpecial occasions
nuggetsGuest insights
hurdlesIssue tracking
wow_momentsExceptional experiences
hotelsProperty configuration
usersStaff accounts
departmentsOrganizational units

Soft Deletes

Most entities use soft deletes (deleted_at) to preserve history.

External IDs

Guests and reservations maintain external IDs for PMS synchronization:
  • oracle_id - Oracle Hospitality ID
  • maestro_id - Maestro PMS ID
  • api_provider_id - Generic external system reference