DATA OBJECT MANAGEMENT
Airbnb Admin Panel
This document provides comprehensive information about how the Airbnb Admin Panel manages data objects, including CRUD operations, validation, relationships, and user interface generation.
Architectural Design Credit and Contact Information
The architectural design of this data object management system is credited to Mindbricks Genesis Engine.
We encourage open communication and welcome any questions or discussions related to the architectural aspects of this data object management system.
Documentation Scope
This guide covers the complete data object management system within the Airbnb Admin Panel. It includes dynamic UI generation, CRUD operations, data validation, relationship management, and user experience patterns.
Intended Audience
This documentation is intended for frontend developers, UI/UX designers, and system administrators who need to understand how data objects are managed, displayed, and manipulated within the admin panel.
Data Object Architecture
Overview
The admin panel implements a basic data object management system that generates simple CRUD interfaces for data objects defined in the backend services. Each data object is represented by a data grid for listing and basic modal components for create/update/delete operations.
Data Object Structure
Core Data Object Properties
- Name: Unique identifier for the data object
- Display Name: Human-readable name for UI display
- Component Name: React component name for rendering
- Properties: Array of data object properties with types
Dynamic UI Generation
Component Generation Pattern
// Data object component structure Messaging messageThread
const DataObjectComponentMessagingMessageThread = {
// List view for displaying multiple records
ListView: {
component: 'MessagingMessageThreadAppPage',
features: ['data-grid', 'export', 'filtering', 'search']
},
// Modal components for data manipulation
CreateModal: {
component: 'MessagingMessageThreadAppPageCreateModal',
lazy: true
},
UpdateModal: {
component: 'MessagingMessageThreadAppPageUpdateModal',
lazy: true
},
// Action components
DeleteModal: {
component: 'MessagingMessageThreadAppPageDeleteModal',
lazy: true
}
};
// Data object component structure Messaging messageReport
const DataObjectComponentMessagingMessageReport = {
// List view for displaying multiple records
ListView: {
component: 'MessagingMessageReportAppPage',
features: ['data-grid', 'export', 'filtering', 'search']
},
// Modal components for data manipulation
CreateModal: {
component: 'MessagingMessageReportAppPageCreateModal',
lazy: true
},
UpdateModal: {
component: 'MessagingMessageReportAppPageUpdateModal',
lazy: true
},
// Action components
DeleteModal: {
component: 'MessagingMessageReportAppPageDeleteModal',
lazy: true
}
};
// Data object component structure Messaging message
const DataObjectComponentMessagingMessage = {
// List view for displaying multiple records
ListView: {
component: 'MessagingMessageAppPage',
features: ['data-grid', 'export', 'filtering', 'search']
},
// Modal components for data manipulation
CreateModal: {
component: 'MessagingMessageAppPageCreateModal',
lazy: true
},
UpdateModal: {
component: 'MessagingMessageAppPageUpdateModal',
lazy: true
},
// Action components
DeleteModal: {
component: 'MessagingMessageAppPageDeleteModal',
lazy: true
}
};
// Data object component structure PropertyCatalog listingCalendar
const DataObjectComponentPropertyCatalogListingCalendar = {
// List view for displaying multiple records
ListView: {
component: 'PropertyCatalogListingCalendarAppPage',
features: ['data-grid', 'export', 'filtering', 'search']
},
// Modal components for data manipulation
CreateModal: {
component: 'PropertyCatalogListingCalendarAppPageCreateModal',
lazy: true
},
UpdateModal: {
component: 'PropertyCatalogListingCalendarAppPageUpdateModal',
lazy: true
},
// Action components
DeleteModal: {
component: 'PropertyCatalogListingCalendarAppPageDeleteModal',
lazy: true
}
};
// Data object component structure PropertyCatalog listingAmenity
const DataObjectComponentPropertyCatalogListingAmenity = {
// List view for displaying multiple records
ListView: {
component: 'PropertyCatalogListingAmenityAppPage',
features: ['data-grid', 'export', 'filtering', 'search']
},
// Modal components for data manipulation
CreateModal: {
component: 'PropertyCatalogListingAmenityAppPageCreateModal',
lazy: true
},
UpdateModal: {
component: 'PropertyCatalogListingAmenityAppPageUpdateModal',
lazy: true
},
// Action components
DeleteModal: {
component: 'PropertyCatalogListingAmenityAppPageDeleteModal',
lazy: true
}
};
// Data object component structure PropertyCatalog listing
const DataObjectComponentPropertyCatalogListing = {
// List view for displaying multiple records
ListView: {
component: 'PropertyCatalogListingAppPage',
features: ['data-grid', 'export', 'filtering', 'search']
},
// Modal components for data manipulation
CreateModal: {
component: 'PropertyCatalogListingAppPageCreateModal',
lazy: true
},
UpdateModal: {
component: 'PropertyCatalogListingAppPageUpdateModal',
lazy: true
},
// Action components
DeleteModal: {
component: 'PropertyCatalogListingAppPageDeleteModal',
lazy: true
}
};
// Data object component structure PropertyCatalog listingLocaleText
const DataObjectComponentPropertyCatalogListingLocaleText = {
// List view for displaying multiple records
ListView: {
component: 'PropertyCatalogListingLocaleTextAppPage',
features: ['data-grid', 'export', 'filtering', 'search']
},
// Modal components for data manipulation
CreateModal: {
component: 'PropertyCatalogListingLocaleTextAppPageCreateModal',
lazy: true
},
UpdateModal: {
component: 'PropertyCatalogListingLocaleTextAppPageUpdateModal',
lazy: true
},
// Action components
DeleteModal: {
component: 'PropertyCatalogListingLocaleTextAppPageDeleteModal',
lazy: true
}
};
// Data object component structure AdminPanel localizationSetting
const DataObjectComponentAdminPanelLocalizationSetting = {
// List view for displaying multiple records
ListView: {
component: 'AdminPanelLocalizationSettingAppPage',
features: ['data-grid', 'export', 'filtering', 'search']
},
// Modal components for data manipulation
CreateModal: {
component: 'AdminPanelLocalizationSettingAppPageCreateModal',
lazy: true
},
UpdateModal: {
component: 'AdminPanelLocalizationSettingAppPageUpdateModal',
lazy: true
},
// Action components
DeleteModal: {
component: 'AdminPanelLocalizationSettingAppPageDeleteModal',
lazy: true
}
};
// Data object component structure AdminPanel adminDisputeAction
const DataObjectComponentAdminPanelAdminDisputeAction = {
// List view for displaying multiple records
ListView: {
component: 'AdminPanelAdminDisputeActionAppPage',
features: ['data-grid', 'export', 'filtering', 'search']
},
// Modal components for data manipulation
CreateModal: {
component: 'AdminPanelAdminDisputeActionAppPageCreateModal',
lazy: true
},
UpdateModal: {
component: 'AdminPanelAdminDisputeActionAppPageUpdateModal',
lazy: true
},
// Action components
DeleteModal: {
component: 'AdminPanelAdminDisputeActionAppPageDeleteModal',
lazy: true
}
};
// Data object component structure AdminPanel apiKey
const DataObjectComponentAdminPanelApiKey = {
// List view for displaying multiple records
ListView: {
component: 'AdminPanelApiKeyAppPage',
features: ['data-grid', 'export', 'filtering', 'search']
},
// Modal components for data manipulation
CreateModal: {
component: 'AdminPanelApiKeyAppPageCreateModal',
lazy: true
},
UpdateModal: {
component: 'AdminPanelApiKeyAppPageUpdateModal',
lazy: true
},
// Action components
DeleteModal: {
component: 'AdminPanelApiKeyAppPageDeleteModal',
lazy: true
}
};
// Data object component structure AdminPanel financialReport
const DataObjectComponentAdminPanelFinancialReport = {
// List view for displaying multiple records
ListView: {
component: 'AdminPanelFinancialReportAppPage',
features: ['data-grid', 'export', 'filtering', 'search']
},
// Modal components for data manipulation
CreateModal: {
component: 'AdminPanelFinancialReportAppPageCreateModal',
lazy: true
},
UpdateModal: {
component: 'AdminPanelFinancialReportAppPageUpdateModal',
lazy: true
},
// Action components
DeleteModal: {
component: 'AdminPanelFinancialReportAppPageDeleteModal',
lazy: true
}
};
// Data object component structure AdminPanel auditLog
const DataObjectComponentAdminPanelAuditLog = {
// List view for displaying multiple records
ListView: {
component: 'AdminPanelAuditLogAppPage',
features: ['data-grid', 'export', 'filtering', 'search']
},
// Modal components for data manipulation
CreateModal: {
component: 'AdminPanelAuditLogAppPageCreateModal',
lazy: true
},
UpdateModal: {
component: 'AdminPanelAuditLogAppPageUpdateModal',
lazy: true
},
// Action components
DeleteModal: {
component: 'AdminPanelAuditLogAppPageDeleteModal',
lazy: true
}
};
// Data object component structure AdminPanel gdprAction
const DataObjectComponentAdminPanelGdprAction = {
// List view for displaying multiple records
ListView: {
component: 'AdminPanelGdprActionAppPage',
features: ['data-grid', 'export', 'filtering', 'search']
},
// Modal components for data manipulation
CreateModal: {
component: 'AdminPanelGdprActionAppPageCreateModal',
lazy: true
},
UpdateModal: {
component: 'AdminPanelGdprActionAppPageUpdateModal',
lazy: true
},
// Action components
DeleteModal: {
component: 'AdminPanelGdprActionAppPageDeleteModal',
lazy: true
}
};
// Data object component structure BookingManagement reservation
const DataObjectComponentBookingManagementReservation = {
// List view for displaying multiple records
ListView: {
component: 'BookingManagementReservationAppPage',
features: ['data-grid', 'export', 'filtering', 'search']
},
// Modal components for data manipulation
CreateModal: {
component: 'BookingManagementReservationAppPageCreateModal',
lazy: true
},
UpdateModal: {
component: 'BookingManagementReservationAppPageUpdateModal',
lazy: true
},
// Action components
DeleteModal: {
component: 'BookingManagementReservationAppPageDeleteModal',
lazy: true
}
};
// Data object component structure BookingManagement paymentRecord
const DataObjectComponentBookingManagementPaymentRecord = {
// List view for displaying multiple records
ListView: {
component: 'BookingManagementPaymentRecordAppPage',
features: ['data-grid', 'export', 'filtering', 'search']
},
// Modal components for data manipulation
CreateModal: {
component: 'BookingManagementPaymentRecordAppPageCreateModal',
lazy: true
},
UpdateModal: {
component: 'BookingManagementPaymentRecordAppPageUpdateModal',
lazy: true
},
// Action components
DeleteModal: {
component: 'BookingManagementPaymentRecordAppPageDeleteModal',
lazy: true
}
};
// Data object component structure BookingManagement dispute
const DataObjectComponentBookingManagementDispute = {
// List view for displaying multiple records
ListView: {
component: 'BookingManagementDisputeAppPage',
features: ['data-grid', 'export', 'filtering', 'search']
},
// Modal components for data manipulation
CreateModal: {
component: 'BookingManagementDisputeAppPageCreateModal',
lazy: true
},
UpdateModal: {
component: 'BookingManagementDisputeAppPageUpdateModal',
lazy: true
},
// Action components
DeleteModal: {
component: 'BookingManagementDisputeAppPageDeleteModal',
lazy: true
}
};
// Data object component structure BookingManagement sys_reservationPayment
const DataObjectComponentBookingManagementSys_reservationPayment = {
// List view for displaying multiple records
ListView: {
component: 'BookingManagementSys_reservationPaymentAppPage',
features: ['data-grid', 'export', 'filtering', 'search']
},
// Modal components for data manipulation
CreateModal: {
component: 'BookingManagementSys_reservationPaymentAppPageCreateModal',
lazy: true
},
UpdateModal: {
component: 'BookingManagementSys_reservationPaymentAppPageUpdateModal',
lazy: true
},
// Action components
DeleteModal: {
component: 'BookingManagementSys_reservationPaymentAppPageDeleteModal',
lazy: true
}
};
// Data object component structure BookingManagement sys_paymentCustomer
const DataObjectComponentBookingManagementSys_paymentCustomer = {
// List view for displaying multiple records
ListView: {
component: 'BookingManagementSys_paymentCustomerAppPage',
features: ['data-grid', 'export', 'filtering', 'search']
},
// Modal components for data manipulation
CreateModal: {
component: 'BookingManagementSys_paymentCustomerAppPageCreateModal',
lazy: true
},
UpdateModal: {
component: 'BookingManagementSys_paymentCustomerAppPageUpdateModal',
lazy: true
},
// Action components
DeleteModal: {
component: 'BookingManagementSys_paymentCustomerAppPageDeleteModal',
lazy: true
}
};
// Data object component structure BookingManagement sys_paymentMethod
const DataObjectComponentBookingManagementSys_paymentMethod = {
// List view for displaying multiple records
ListView: {
component: 'BookingManagementSys_paymentMethodAppPage',
features: ['data-grid', 'export', 'filtering', 'search']
},
// Modal components for data manipulation
CreateModal: {
component: 'BookingManagementSys_paymentMethodAppPageCreateModal',
lazy: true
},
UpdateModal: {
component: 'BookingManagementSys_paymentMethodAppPageUpdateModal',
lazy: true
},
// Action components
DeleteModal: {
component: 'BookingManagementSys_paymentMethodAppPageDeleteModal',
lazy: true
}
};
// Data object component structure ReviewSystem reviewAggregate
const DataObjectComponentReviewSystemReviewAggregate = {
// List view for displaying multiple records
ListView: {
component: 'ReviewSystemReviewAggregateAppPage',
features: ['data-grid', 'export', 'filtering', 'search']
},
// Modal components for data manipulation
CreateModal: {
component: 'ReviewSystemReviewAggregateAppPageCreateModal',
lazy: true
},
UpdateModal: {
component: 'ReviewSystemReviewAggregateAppPageUpdateModal',
lazy: true
},
// Action components
DeleteModal: {
component: 'ReviewSystemReviewAggregateAppPageDeleteModal',
lazy: true
}
};
// Data object component structure ReviewSystem review
const DataObjectComponentReviewSystemReview = {
// List view for displaying multiple records
ListView: {
component: 'ReviewSystemReviewAppPage',
features: ['data-grid', 'export', 'filtering', 'search']
},
// Modal components for data manipulation
CreateModal: {
component: 'ReviewSystemReviewAppPageCreateModal',
lazy: true
},
UpdateModal: {
component: 'ReviewSystemReviewAppPageUpdateModal',
lazy: true
},
// Action components
DeleteModal: {
component: 'ReviewSystemReviewAppPageDeleteModal',
lazy: true
}
};
// Data object component structure Auth user
const DataObjectComponentAuthUser = {
// List view for displaying multiple records
ListView: {
component: 'AuthUserAppPage',
features: ['data-grid', 'export', 'filtering', 'search']
},
// Modal components for data manipulation
CreateModal: {
component: 'AuthUserAppPageCreateModal',
lazy: true
},
UpdateModal: {
component: 'AuthUserAppPageUpdateModal',
lazy: true
},
// Action components
DeleteModal: {
component: 'AuthUserAppPageDeleteModal',
lazy: true
}
};
// Data object component structure Auth userGroup
const DataObjectComponentAuthUserGroup = {
// List view for displaying multiple records
ListView: {
component: 'AuthUserGroupAppPage',
features: ['data-grid', 'export', 'filtering', 'search']
},
// Modal components for data manipulation
CreateModal: {
component: 'AuthUserGroupAppPageCreateModal',
lazy: true
},
UpdateModal: {
component: 'AuthUserGroupAppPageUpdateModal',
lazy: true
},
// Action components
DeleteModal: {
component: 'AuthUserGroupAppPageDeleteModal',
lazy: true
}
};
// Data object component structure Auth userGroupMember
const DataObjectComponentAuthUserGroupMember = {
// List view for displaying multiple records
ListView: {
component: 'AuthUserGroupMemberAppPage',
features: ['data-grid', 'export', 'filtering', 'search']
},
// Modal components for data manipulation
CreateModal: {
component: 'AuthUserGroupMemberAppPageCreateModal',
lazy: true
},
UpdateModal: {
component: 'AuthUserGroupMemberAppPageUpdateModal',
lazy: true
},
// Action components
DeleteModal: {
component: 'AuthUserGroupMemberAppPageDeleteModal',
lazy: true
}
};
Service Data Objects
Messaging Service Data Objects
Service Overview
-
Service Name:
messaging -
Service Display Name:
Messaging - Total Data Objects: 3
Data Objects
MessageThread Data Object
Basic Information
-
Object Name:
messageThread -
Display Name:
MessageThread -
Component Name:
MessagingMessageThreadAppPage - Description: Thread/conversation between guest and host, optionally linked to a listing/reservation. Tracks participants, context, state, and stats.
Object Properties
| Property Name | Type | Required | Default | Definition |
|---|
| messageCount | Integer | | N/A | Total number of messages in thread. |
| isOpen | Boolean | | N/A | Thread is open for messaging (not closed/archived). |
| guestId | ID | | N/A | Guest user in this thread. |
| lastMessageAt | Date | | N/A | Last message sent in thread. |
| listingId | ID | | N/A | Listing related to this thread if any. |
| hostId | ID | | N/A | Host user in this thread. |
| reservationId | ID | | N/A | Reservation related to thread if any. |
Generated UI Components
-
List Component:
MessagingMessageThreadAppPageList- Displays paginated data with filtering and sorting -
Create Modal:
MessagingMessageThreadAppPageCreateModal- Form for creating new records -
Update Modal:
MessagingMessageThreadAppPageUpdateModal- Form for editing existing records -
Delete Modal:
MessagingMessageThreadAppPageDeleteModal- Confirmation dialog for deletion
API Endpoints
-
List:
GET /messageThread/list- Retrieve paginated list of records -
Get:
GET /messageThread/get- Retrieve single record by ID -
Create:
POST /messageThread/create- Create new record -
Update:
PUT /messageThread/update- Update existing record -
Delete:
DELETE /messageThread/delete- Delete record by ID
Route Configuration
-
List Route:
/dashboard/messaging/messageThread -
Create Route:
/dashboard/messaging/messageThread/create -
Update Route:
/dashboard/messaging/messageThread/update/:id -
Delete Route:
/dashboard/messaging/messageThread/delete/:id
MessageReport Data Object
Basic Information
-
Object Name:
messageReport -
Display Name:
MessageReport -
Component Name:
MessagingMessageReportAppPage - Description: Report/in-app abuse complaint filed for a message by a user. Tracks status, admin handling, and resolution notes. Only visible to involved parties and admins.
Object Properties
| Property Name | Type | Required | Default | Definition |
|---|
| reportedBy | ID | | N/A | User reporting this message. |
| reportReason | String | | N/A | Reporter-supplied reason for report/abuse claim. |
| moderationStatus | Enum | | N/A | Status of admin moderation/response. |
| messageId | ID | | N/A | Message being reported (abuse/inappropriate). |
| adminId | ID | | N/A | Admin assigned/reviewing this report (if any). |
| reportedAt | Date | | N/A | Datetime when report was filed. |
| resolutionNotes | Text | | N/A | Admin/moderator notes regarding outcome/resolution. |
Enum Properties
moderationStatus Enum Property
Property Definition: Status of admin moderation/response.
Enum Options
| Name | Value | Index |
|---|
| pending |
"pending"
| 0 |
| reviewed |
"reviewed"
| 1 |
| closed |
"closed"
| 2 |
Generated UI Components
-
List Component:
MessagingMessageReportAppPageList- Displays paginated data with filtering and sorting -
Create Modal:
MessagingMessageReportAppPageCreateModal- Form for creating new records -
Update Modal:
MessagingMessageReportAppPageUpdateModal- Form for editing existing records -
Delete Modal:
MessagingMessageReportAppPageDeleteModal- Confirmation dialog for deletion
API Endpoints
-
List:
GET /messageReport/list- Retrieve paginated list of records -
Get:
GET /messageReport/get- Retrieve single record by ID -
Create:
POST /messageReport/create- Create new record -
Update:
PUT /messageReport/update- Update existing record -
Delete:
DELETE /messageReport/delete- Delete record by ID
Route Configuration
-
List Route:
/dashboard/messaging/messageReport -
Create Route:
/dashboard/messaging/messageReport/create -
Update Route:
/dashboard/messaging/messageReport/update/:id -
Delete Route:
/dashboard/messaging/messageReport/delete/:id
Message Data Object
Basic Information
-
Object Name:
message -
Display Name:
Message -
Component Name:
MessagingMessageAppPage - Description: Single message within a thread (text/media/system). Includes metadata for flagging/moderation. Linked to sender, thread, and content type.
Object Properties
| Property Name | Type | Required | Default | Definition |
|---|
| threadId | ID | | N/A | Thread this message belongs to. |
| content | Text | | N/A | Message content (text or system message). |
| senderId | ID | | N/A | User who sent this message (must be guest/host in thread). |
| sentAt | Date | | N/A | When this message was sent (from client/server). |
| messageType | Enum | | N/A | Message type: text/media/system. |
| mediaUrl | String | | N/A | URL of media if type=media (optional, else null). |
| isModerated | Boolean | | N/A | True if message reviewed by admin (can be marked in moderation). |
| isFlagged | Boolean | | N/A | Message flagged as abuse/inappropriate. |
| flaggedBy | ID | | N/A | User who flagged, if any. |
| flagReason | String | | N/A | Reason for flagging, if provided. |
| isRead | Boolean | | N/A | marks a last array point if message is read or not |
Enum Properties
messageType Enum Property
Property Definition: Message type: text/media/system.
Enum Options
| Name | Value | Index |
|---|
| text |
"text"
| 0 |
| media |
"media"
| 1 |
| system |
"system"
| 2 |
Generated UI Components
-
List Component:
MessagingMessageAppPageList- Displays paginated data with filtering and sorting -
Create Modal:
MessagingMessageAppPageCreateModal- Form for creating new records -
Update Modal:
MessagingMessageAppPageUpdateModal- Form for editing existing records -
Delete Modal:
MessagingMessageAppPageDeleteModal- Confirmation dialog for deletion
API Endpoints
-
List:
GET /message/list- Retrieve paginated list of records -
Get:
GET /message/get- Retrieve single record by ID -
Create:
POST /message/create- Create new record -
Update:
PUT /message/update- Update existing record -
Delete:
DELETE /message/delete- Delete record by ID
Route Configuration
-
List Route:
/dashboard/messaging/message -
Create Route:
/dashboard/messaging/message/create -
Update Route:
/dashboard/messaging/message/update/:id -
Delete Route:
/dashboard/messaging/message/delete/:id
PropertyCatalog Service Data Objects
Service Overview
-
Service Name:
propertyCatalog -
Service Display Name:
PropertyCatalog - Total Data Objects: 4
Data Objects
ListingCalendar Data Object
Basic Information
-
Object Name:
listingCalendar -
Display Name:
ListingCalendar -
Component Name:
PropertyCatalogListingCalendarAppPage - Description: Represents daily availability, pricing, and reservation state for a listing (i.e., a property calendar entry).
Object Properties
| Property Name | Type | Required | Default | Definition |
|---|
| priceOverride | Double | | N/A | Override price for this specific date (if exists). |
| date | Date | | N/A | Specific date for this calendar entry (YYYY-MM-DD). |
| minStay | Integer | | N/A | Minimum stay enforced for this date (overrides listing value). |
| listingId | ID | | N/A | Listing this calendar date belongs to. |
| bookedBy | ID | | N/A | User ID who reserved this date, if any. |
| iCalUrl | String | | N/A | iCal export URL for calendar sync (guest/owner use). |
| externalCalendarIds | String | | N/A | IDs for synchronized (imported) external calendars. |
| isAvailable | Boolean | | N/A | If true, date is bookable (else is blocked/reserved). |
Generated UI Components
-
List Component:
PropertyCatalogListingCalendarAppPageList- Displays paginated data with filtering and sorting -
Create Modal:
PropertyCatalogListingCalendarAppPageCreateModal- Form for creating new records -
Update Modal:
PropertyCatalogListingCalendarAppPageUpdateModal- Form for editing existing records -
Delete Modal:
PropertyCatalogListingCalendarAppPageDeleteModal- Confirmation dialog for deletion
API Endpoints
-
List:
GET /listingCalendar/list- Retrieve paginated list of records -
Get:
GET /listingCalendar/get- Retrieve single record by ID -
Create:
POST /listingCalendar/create- Create new record -
Update:
PUT /listingCalendar/update- Update existing record -
Delete:
DELETE /listingCalendar/delete- Delete record by ID
Route Configuration
-
List Route:
/dashboard/propertyCatalog/listingCalendar -
Create Route:
/dashboard/propertyCatalog/listingCalendar/create -
Update Route:
/dashboard/propertyCatalog/listingCalendar/update/:id -
Delete Route:
/dashboard/propertyCatalog/listingCalendar/delete/:id
ListingAmenity Data Object
Basic Information
-
Object Name:
listingAmenity -
Display Name:
ListingAmenity -
Component Name:
PropertyCatalogListingAmenityAppPage - Description: Dictionary of possible amenities (wifi, pool, etc.) for hosts to reference in their listings.
Object Properties
| Property Name | Type | Required | Default | Definition |
|---|
| iconUrl | String | | N/A | URL of amenity icon. |
| name | String | | N/A | Amenity name (pool, wifi, etc). |
Generated UI Components
-
List Component:
PropertyCatalogListingAmenityAppPageList- Displays paginated data with filtering and sorting -
Create Modal:
PropertyCatalogListingAmenityAppPageCreateModal- Form for creating new records -
Update Modal:
PropertyCatalogListingAmenityAppPageUpdateModal- Form for editing existing records -
Delete Modal:
PropertyCatalogListingAmenityAppPageDeleteModal- Confirmation dialog for deletion
API Endpoints
-
List:
GET /listingAmenity/list- Retrieve paginated list of records -
Get:
GET /listingAmenity/get- Retrieve single record by ID -
Create:
POST /listingAmenity/create- Create new record -
Update:
PUT /listingAmenity/update- Update existing record -
Delete:
DELETE /listingAmenity/delete- Delete record by ID
Route Configuration
-
List Route:
/dashboard/propertyCatalog/listingAmenity -
Create Route:
/dashboard/propertyCatalog/listingAmenity/create -
Update Route:
/dashboard/propertyCatalog/listingAmenity/update/:id -
Delete Route:
/dashboard/propertyCatalog/listingAmenity/delete/:id
Listing Data Object
Basic Information
-
Object Name:
listing -
Display Name:
Listing -
Component Name:
PropertyCatalogListingAppPage - Description: Represents a property or space offered for short-term rental by a host. Includes host ref, core attributes, pricing, location, seasonal pricing, media, and booking/policy properties...
Object Properties
| Property Name | Type | Required | Default | Definition |
|---|
| title | String | | N/A | Default listing title (host language)—localized titles in listingLocaleText. |
| amenityIds | ID | | N/A | Array of amenities from 'listingAmenity'. |
| hostId | ID | | N/A | The user (host) who owns this listing. |
| mainPhoto | String | | N/A | URL of the primary listing photo. |
| photos | String | | N/A | Array of photo URLs. |
| address | String | | N/A | Free-form address (not necessarily geo-coded). |
| pricePerNight | Double | | N/A | Base nightly price in platform currency. |
| description | Text | | N/A | Default listing description (host language)—localized via listingLocaleText. |
| propertyType | Enum | | N/A | Type of property (e.g. apartment, house, villa, room). |
| location | Object | | N/A | Geo-location object (latitude and longitude). |
| maxStay | Integer | | N/A | Maximum nights allowed for booking. |
| minStay | Integer | | N/A | Minimum nights required for booking. |
| currency | String | | N/A | Currency code (ISO 4217). |
| seasonalPricing | Object | | N/A | Objects defining season/date-specific price adjustments. |
| approvalType | Enum | | N/A | Whether bookings require approval or are instant. |
| bookingPolicies | Object | | N/A | Object describing booking rules and platform-enforced restrictions. |
| cancellationPolicy | Object | | N/A | Object snapshot of cancellation policy details for this listing. |
| languagesSupported | String | | N/A | Array of ISO codes for localized content supported in this listing. |
| houseRules | Text | | N/A | Free-form rules set by the host for this listing. |
| isPublished | Boolean | | N/A | If true, listing is public/discoverable. |
| cityTaxPercent | Double | | N/A | City or tourism tax as a percentage set for this listing's location/region. |
Enum Properties
propertyType Enum Property
Property Definition: Type of property (e.g. apartment, house, villa, room).
Enum Options
| Name | Value | Index |
|---|
| apartment |
"apartment"
| 0 |
| house |
"house"
| 1 |
| villa |
"villa"
| 2 |
| room |
"room"
| 3 |
| condo |
"condo"
| 4 |
| loft |
"loft"
| 5 |
| studio |
"studio"
| 6 |
| other |
"other"
| 7 |
approvalType Enum Property
Property Definition: Whether bookings require approval or are instant.
Enum Options
| Name | Value | Index |
|---|
| instant |
"instant"
| 0 |
| manual |
"manual"
| 1 |
Generated UI Components
-
List Component:
PropertyCatalogListingAppPageList- Displays paginated data with filtering and sorting -
Create Modal:
PropertyCatalogListingAppPageCreateModal- Form for creating new records -
Update Modal:
PropertyCatalogListingAppPageUpdateModal- Form for editing existing records -
Delete Modal:
PropertyCatalogListingAppPageDeleteModal- Confirmation dialog for deletion
API Endpoints
-
List:
GET /listing/list- Retrieve paginated list of records -
Get:
GET /listing/get- Retrieve single record by ID -
Create:
POST /listing/create- Create new record -
Update:
PUT /listing/update- Update existing record -
Delete:
DELETE /listing/delete- Delete record by ID
Route Configuration
-
List Route:
/dashboard/propertyCatalog/listing -
Create Route:
/dashboard/propertyCatalog/listing/create -
Update Route:
/dashboard/propertyCatalog/listing/update/:id -
Delete Route:
/dashboard/propertyCatalog/listing/delete/:id
ListingLocaleText Data Object
Basic Information
-
Object Name:
listingLocaleText -
Display Name:
ListingLocaleText -
Component Name:
PropertyCatalogListingLocaleTextAppPage - Description: Localized title & description texts for a property listing, per language.
Object Properties
| Property Name | Type | Required | Default | Definition |
|---|
| localizedDescription | Text | | N/A | Localized description for this language. |
| localizedTitle | String | | N/A | Listing title translated for this language. |
| listingId | ID | | N/A | Listing this translation belongs to. |
| languageCode | String | | N/A | ISO 639-1 or -2 code for language. |
Generated UI Components
-
List Component:
PropertyCatalogListingLocaleTextAppPageList- Displays paginated data with filtering and sorting -
Create Modal:
PropertyCatalogListingLocaleTextAppPageCreateModal- Form for creating new records -
Update Modal:
PropertyCatalogListingLocaleTextAppPageUpdateModal- Form for editing existing records -
Delete Modal:
PropertyCatalogListingLocaleTextAppPageDeleteModal- Confirmation dialog for deletion
API Endpoints
-
List:
GET /listingLocaleText/list- Retrieve paginated list of records -
Get:
GET /listingLocaleText/get- Retrieve single record by ID -
Create:
POST /listingLocaleText/create- Create new record -
Update:
PUT /listingLocaleText/update- Update existing record -
Delete:
DELETE /listingLocaleText/delete- Delete record by ID
Route Configuration
-
List Route:
/dashboard/propertyCatalog/listingLocaleText -
Create Route:
/dashboard/propertyCatalog/listingLocaleText/create -
Update Route:
/dashboard/propertyCatalog/listingLocaleText/update/:id -
Delete Route:
/dashboard/propertyCatalog/listingLocaleText/delete/:id
AdminPanel Service Data Objects
Service Overview
-
Service Name:
adminPanel -
Service Display Name:
AdminPanel - Total Data Objects: 6
Data Objects
LocalizationSetting Data Object
Basic Information
-
Object Name:
localizationSetting -
Display Name:
LocalizationSetting -
Component Name:
AdminPanelLocalizationSettingAppPage - Description: Admin-configured valid languages/currencies for site usage and preference.
Object Properties
| Property Name | Type | Required | Default | Definition |
|---|
| languageCode | String | | N/A | ISO 639-1 language code (e.g., 'en', 'fr'). |
| effectiveFrom | Date | | N/A | Start datetime this setting becomes effective. |
| effectiveTo | Date | | N/A | End datetime this setting is valid (null=open ended). |
| currencyCode | String | | N/A | ISO 4217 currency code (e.g., 'USD', 'EUR'). |
| isCurrencyActive | Boolean | | N/A | Is currency enabled for offer/usage? |
Generated UI Components
-
List Component:
AdminPanelLocalizationSettingAppPageList- Displays paginated data with filtering and sorting -
Create Modal:
AdminPanelLocalizationSettingAppPageCreateModal- Form for creating new records -
Update Modal:
AdminPanelLocalizationSettingAppPageUpdateModal- Form for editing existing records -
Delete Modal:
AdminPanelLocalizationSettingAppPageDeleteModal- Confirmation dialog for deletion
API Endpoints
-
List:
GET /localizationSetting/list- Retrieve paginated list of records -
Get:
GET /localizationSetting/get- Retrieve single record by ID -
Create:
POST /localizationSetting/create- Create new record -
Update:
PUT /localizationSetting/update- Update existing record -
Delete:
DELETE /localizationSetting/delete- Delete record by ID
Route Configuration
-
List Route:
/dashboard/adminPanel/localizationSetting -
Create Route:
/dashboard/adminPanel/localizationSetting/create -
Update Route:
/dashboard/adminPanel/localizationSetting/update/:id -
Delete Route:
/dashboard/adminPanel/localizationSetting/delete/:id
AdminDisputeAction Data Object
Basic Information
-
Object Name:
adminDisputeAction -
Display Name:
AdminDisputeAction -
Component Name:
AdminPanelAdminDisputeActionAppPage - Description: Record of an admin's moderation/decision action on a dispute.
Object Properties
| Property Name | Type | Required | Default | Definition |
|---|
| disputeId | ID | | N/A | Dispute (from bookingManagement:dispute) referenced by this action. |
| actionTaken | String | | N/A | Action performed (e.g., 'approvedRefund', 'requestedEvidence', 'closedDispute'). |
| notes | Text | | N/A | Admin notes or reasoning for this action (for audit trail/auditLog). |
| adminId | ID | | N/A | Admin user performing action. |
| outcome | String | | N/A | Outcome, summary, or state after action (e.g., 'refund_issued', 'rejected', 'dispute_closed'). |
| actionDate | Date | | N/A | Timestamp of action (UTC). |
Generated UI Components
-
List Component:
AdminPanelAdminDisputeActionAppPageList- Displays paginated data with filtering and sorting -
Create Modal:
AdminPanelAdminDisputeActionAppPageCreateModal- Form for creating new records -
Update Modal:
AdminPanelAdminDisputeActionAppPageUpdateModal- Form for editing existing records -
Delete Modal:
AdminPanelAdminDisputeActionAppPageDeleteModal- Confirmation dialog for deletion
API Endpoints
-
List:
GET /adminDisputeAction/list- Retrieve paginated list of records -
Get:
GET /adminDisputeAction/get- Retrieve single record by ID -
Create:
POST /adminDisputeAction/create- Create new record -
Update:
PUT /adminDisputeAction/update- Update existing record -
Delete:
DELETE /adminDisputeAction/delete- Delete record by ID
Route Configuration
-
List Route:
/dashboard/adminPanel/adminDisputeAction -
Create Route:
/dashboard/adminPanel/adminDisputeAction/create -
Update Route:
/dashboard/adminPanel/adminDisputeAction/update/:id -
Delete Route:
/dashboard/adminPanel/adminDisputeAction/delete/:id
ApiKey Data Object
Basic Information
-
Object Name:
apiKey -
Display Name:
ApiKey -
Component Name:
AdminPanelApiKeyAppPage - Description: Admin-generated API key for internal/external integration—has revocation, audit trail.
Object Properties
| Property Name | Type | Required | Default | Definition |
|---|
| key | String | | N/A | API key string (generated, unique). |
| active | Boolean | | N/A | Is the API key currently active? |
| description | String | | N/A | Description/label for the API key/purpose. |
| revokedAt | Date | | N/A | UTC time this key was revoked. |
| createdBy | ID | | N/A | Admin user who generated the key. |
Generated UI Components
-
List Component:
AdminPanelApiKeyAppPageList- Displays paginated data with filtering and sorting -
Create Modal:
AdminPanelApiKeyAppPageCreateModal- Form for creating new records -
Update Modal:
AdminPanelApiKeyAppPageUpdateModal- Form for editing existing records -
Delete Modal:
AdminPanelApiKeyAppPageDeleteModal- Confirmation dialog for deletion
API Endpoints
-
List:
GET /apiKey/list- Retrieve paginated list of records -
Get:
GET /apiKey/get- Retrieve single record by ID -
Create:
POST /apiKey/create- Create new record -
Update:
PUT /apiKey/update- Update existing record -
Delete:
DELETE /apiKey/delete- Delete record by ID
Route Configuration
-
List Route:
/dashboard/adminPanel/apiKey -
Create Route:
/dashboard/adminPanel/apiKey/create -
Update Route:
/dashboard/adminPanel/apiKey/update/:id -
Delete Route:
/dashboard/adminPanel/apiKey/delete/:id
FinancialReport Data Object
Basic Information
-
Object Name:
financialReport -
Display Name:
FinancialReport -
Component Name:
AdminPanelFinancialReportAppPage - Description: System-generated or admin-generated report snapshots of platform financials for a given period (GDPR/tax).
Object Properties
| Property Name | Type | Required | Default | Definition |
|---|
| period | String | | N/A | Reporting period (e.g., '2025-Q1', '2025-05') |
| cityTaxByLocation | Object | | N/A | Breakdown object for city/local/tourism taxes within period (e.g., {"Paris": 1200, "New York": 940}). |
| totalPayouts | Double | | N/A | Total host payouts (for report currency/period). |
| createdBy | ID | | N/A | Admin/automated process that created the report. |
| totalRefunds | Double | | N/A | Total amount refunded during report period (currency match report). |
| currency | String | | N/A | ISO 4217 currency code for report (e.g., 'USD', 'EUR'). |
| generatedAt | Date | | N/A | Timestamp when report was generated. |
| totalRevenue | Double | | N/A | Total gross revenue (in report currency) for period. |
Generated UI Components
-
List Component:
AdminPanelFinancialReportAppPageList- Displays paginated data with filtering and sorting -
Create Modal:
AdminPanelFinancialReportAppPageCreateModal- Form for creating new records -
Update Modal:
AdminPanelFinancialReportAppPageUpdateModal- Form for editing existing records -
Delete Modal:
AdminPanelFinancialReportAppPageDeleteModal- Confirmation dialog for deletion
API Endpoints
-
List:
GET /financialReport/list- Retrieve paginated list of records -
Get:
GET /financialReport/get- Retrieve single record by ID -
Create:
POST /financialReport/create- Create new record -
Update:
PUT /financialReport/update- Update existing record -
Delete:
DELETE /financialReport/delete- Delete record by ID
Route Configuration
-
List Route:
/dashboard/adminPanel/financialReport -
Create Route:
/dashboard/adminPanel/financialReport/create -
Update Route:
/dashboard/adminPanel/financialReport/update/:id -
Delete Route:
/dashboard/adminPanel/financialReport/delete/:id
AuditLog Data Object
Basic Information
-
Object Name:
auditLog -
Display Name:
AuditLog -
Component Name:
AdminPanelAuditLogAppPage - Description: Immutable audit log for recording sensitive admin actions and platform changes.
Object Properties
| Property Name | Type | Required | Default | Definition |
|---|
| performedBy | ID | | N/A | User (usually admin) who performed the action. |
| objectId | ID | | N/A | ID of the affected object (e.g., reviewId, disputeId, apiKeyId). |
| details | Object | | N/A | Free-form object containing action details, parameters, or change snapshot. |
| ipAddress | String | | N/A | IP address/address metadata of performer (for compliance tracing). |
| actionObject | String | | N/A | Object/type this action refers to (e.g. 'review', 'dispute', 'apiKey'). |
| occurredAt | Date | | N/A | UTC timestamp of the action. |
| actionType | String | | N/A | Type of action (e.g., 'approveDispute', 'financialExport', 'updateReviewStatus'). |
Generated UI Components
-
List Component:
AdminPanelAuditLogAppPageList- Displays paginated data with filtering and sorting -
Create Modal:
AdminPanelAuditLogAppPageCreateModal- Form for creating new records -
Update Modal:
AdminPanelAuditLogAppPageUpdateModal- Form for editing existing records -
Delete Modal:
AdminPanelAuditLogAppPageDeleteModal- Confirmation dialog for deletion
API Endpoints
-
List:
GET /auditLog/list- Retrieve paginated list of records -
Get:
GET /auditLog/get- Retrieve single record by ID -
Create:
POST /auditLog/create- Create new record -
Update:
PUT /auditLog/update- Update existing record -
Delete:
DELETE /auditLog/delete- Delete record by ID
Route Configuration
-
List Route:
/dashboard/adminPanel/auditLog -
Create Route:
/dashboard/adminPanel/auditLog/create -
Update Route:
/dashboard/adminPanel/auditLog/update/:id -
Delete Route:
/dashboard/adminPanel/auditLog/delete/:id
GdprAction Data Object
Basic Information
-
Object Name:
gdprAction -
Display Name:
GdprAction -
Component Name:
AdminPanelGdprActionAppPage - Description: Record of individual user GDPR/consent/export/delete request flow. Used for logs, compliance, and controls.
Object Properties
| Property Name | Type | Required | Default | Definition |
|---|
| requestedAt | Date | | N/A | Datetime when user made the request. |
| status | Enum | | N/A | GDPR request status: pending, complete, or failed. |
| actionType | String | | N/A | Type of GDPR request: export, delete, consent-change. |
| userId | ID | | N/A | User who submitted this request. |
| processedAt | Date | | N/A | Datetime when handled or process complete/logged. |
Enum Properties
status Enum Property
Property Definition: GDPR request status: pending, complete, or failed.
Enum Options
| Name | Value | Index |
|---|
| pending |
"pending"
| 0 |
| complete |
"complete"
| 1 |
| failed |
"failed"
| 2 |
Generated UI Components
-
List Component:
AdminPanelGdprActionAppPageList- Displays paginated data with filtering and sorting -
Create Modal:
AdminPanelGdprActionAppPageCreateModal- Form for creating new records -
Update Modal:
AdminPanelGdprActionAppPageUpdateModal- Form for editing existing records -
Delete Modal:
AdminPanelGdprActionAppPageDeleteModal- Confirmation dialog for deletion
API Endpoints
-
List:
GET /gdprAction/list- Retrieve paginated list of records -
Get:
GET /gdprAction/get- Retrieve single record by ID -
Create:
POST /gdprAction/create- Create new record -
Update:
PUT /gdprAction/update- Update existing record -
Delete:
DELETE /gdprAction/delete- Delete record by ID
Route Configuration
-
List Route:
/dashboard/adminPanel/gdprAction -
Create Route:
/dashboard/adminPanel/gdprAction/create -
Update Route:
/dashboard/adminPanel/gdprAction/update/:id -
Delete Route:
/dashboard/adminPanel/gdprAction/delete/:id
BookingManagement Service Data Objects
Service Overview
-
Service Name:
bookingManagement -
Service Display Name:
BookingManagement - Total Data Objects: 6
Data Objects
Reservation Data Object
Basic Information
-
Object Name:
reservation -
Display Name:
Reservation -
Component Name:
BookingManagementReservationAppPage - Description: Represents a guest's booking for a property listing, including dates, participants, approval/payment/dispute status, and iCal sync info...
Object Properties
| Property Name | Type | Required | Default | Definition |
|---|
| listingId | ID | | N/A | Property being booked. |
| approvalType | Enum | | N/A | Reservation requires instant approval (0) or host/manual (1). |
| bookingStatus | Enum | | N/A | Current status of reservation (0: pending, 1: confirmed, 2: complete, 3: cancelled, 4: declined). |
| hostId | ID | | N/A | Host user for the property (listing owner at booking creation). |
| checkOut | Date | | N/A | Check-out date (YYYY-MM-DD, exclusive). |
| guestId | ID | | N/A | User making the reservation (guest). |
| checkIn | Date | | N/A | Check-in date (YYYY-MM-DD). |
| currency | String | | N/A | Currency code (ISO 4217). |
| guestCount | Integer | | N/A | Number of guests for this reservation. |
| totalPrice | Double | | N/A | Total price for reservation (including fees/taxes). |
| iCalExportUrl | String | | N/A | URL for iCal .ics export for guest/host calendar sync. |
| disputeStatus | Enum | | N/A | Current dispute status on reservation (0: none, 1: requested, 2: active, 3: resolved). |
| bookingPoliciesSnapshot | Object | | N/A | Snapshot of listing booking policies at booking time (for dispute/reference). |
| iCalImportSource | String | | N/A | (Optional) iCal import source URL for syncing external calendars. |
| cancellationPolicySnapshot | Object | | N/A | Snapshot of listing cancellation policy at booking time. |
| _paymentConfirmation | Enum | | N/A | An automatic property that is used to check the confirmed status of the payment set by webhooks. |
Enum Properties
approvalType Enum Property
Property Definition: Reservation requires instant approval (0) or host/manual (1).
Enum Options
| Name | Value | Index |
|---|
| instant |
"instant"
| 0 |
| manual |
"manual"
| 1 |
bookingStatus Enum Property
Property Definition: Current status of reservation (0: pending, 1: confirmed, 2: complete, 3: cancelled, 4: declined).
Enum Options
| Name | Value | Index |
|---|
| pending |
"pending"
| 0 |
| confirmed |
"confirmed"
| 1 |
| complete |
"complete"
| 2 |
| cancelled |
"cancelled"
| 3 |
| declined |
"declined"
| 4 |
disputeStatus Enum Property
Property Definition: Current dispute status on reservation (0: none, 1: requested, 2: active, 3: resolved).
Enum Options
| Name | Value | Index |
|---|
| none |
"none"
| 0 |
| requested |
"requested"
| 1 |
| active |
"active"
| 2 |
| resolved |
"resolved"
| 3 |
_paymentConfirmation Enum Property
Property Definition: An automatic property that is used to check the confirmed status of the payment set by webhooks.
Enum Options
| Name | Value | Index |
|---|
| pending |
"pending"
| 0 |
| processing |
"processing"
| 1 |
| paid |
"paid"
| 2 |
| canceled |
"canceled"
| 3 |
Generated UI Components
-
List Component:
BookingManagementReservationAppPageList- Displays paginated data with filtering and sorting -
Create Modal:
BookingManagementReservationAppPageCreateModal- Form for creating new records -
Update Modal:
BookingManagementReservationAppPageUpdateModal- Form for editing existing records -
Delete Modal:
BookingManagementReservationAppPageDeleteModal- Confirmation dialog for deletion
API Endpoints
-
List:
GET /reservation/list- Retrieve paginated list of records -
Get:
GET /reservation/get- Retrieve single record by ID -
Create:
POST /reservation/create- Create new record -
Update:
PUT /reservation/update- Update existing record -
Delete:
DELETE /reservation/delete- Delete record by ID
Route Configuration
-
List Route:
/dashboard/bookingManagement/reservation -
Create Route:
/dashboard/bookingManagement/reservation/create -
Update Route:
/dashboard/bookingManagement/reservation/update/:id -
Delete Route:
/dashboard/bookingManagement/reservation/delete/:id
PaymentRecord Data Object
Basic Information
-
Object Name:
paymentRecord -
Display Name:
PaymentRecord -
Component Name:
BookingManagementPaymentRecordAppPage - Description: Stores payment and payout records (Stripe-driven) linked to a reservation (guest booking), including platform fees, taxes, host payouts, and status updates. Immutable after creation, never hard deleted.
Object Properties
| Property Name | Type | Required | Default | Definition |
|---|
| reservationId | ID | | N/A | Reservation this payment refers to. |
| stripeChargeId | String | | N/A | Stripe charge object ID, if payment succeeded. |
| payoutAmountHost | Double | | N/A | Amount paid out to host user (after platform fees/taxes). |
| paymentIntentId | String | | N/A | Payment intent ID from Stripe (for validation, refunds, disputes). |
| currency | String | | N/A | Currency (ISO 4217) of payment. |
| cityTax | Double | | N/A | City/locality tax portion for the booking. |
| refundAmount | Double | | N/A | Refunded amount, if booking is cancelled/disputed. |
| amountPaid | Double | | N/A | Total amount paid by guest (including fees/taxes, in cents). |
| paymentStatus | Enum | | N/A | Status of payment (0: pending, 1: paid, 2: refunded, 3: failed). |
| platformFee | Double | | N/A | Platform fee deducted from amount paid by guest. |
| paymentDate | Date | | N/A | UTC datetime of payment/refund event. |
Enum Properties
paymentStatus Enum Property
Property Definition: Status of payment (0: pending, 1: paid, 2: refunded, 3: failed).
Enum Options
| Name | Value | Index |
|---|
| pending |
"pending"
| 0 |
| paid |
"paid"
| 1 |
| refunded |
"refunded"
| 2 |
| failed |
"failed"
| 3 |
Generated UI Components
-
List Component:
BookingManagementPaymentRecordAppPageList- Displays paginated data with filtering and sorting -
Create Modal:
BookingManagementPaymentRecordAppPageCreateModal- Form for creating new records -
Update Modal:
BookingManagementPaymentRecordAppPageUpdateModal- Form for editing existing records -
Delete Modal:
BookingManagementPaymentRecordAppPageDeleteModal- Confirmation dialog for deletion
API Endpoints
-
List:
GET /paymentRecord/list- Retrieve paginated list of records -
Get:
GET /paymentRecord/get- Retrieve single record by ID -
Create:
POST /paymentRecord/create- Create new record -
Update:
PUT /paymentRecord/update- Update existing record -
Delete:
DELETE /paymentRecord/delete- Delete record by ID
Route Configuration
-
List Route:
/dashboard/bookingManagement/paymentRecord -
Create Route:
/dashboard/bookingManagement/paymentRecord/create -
Update Route:
/dashboard/bookingManagement/paymentRecord/update/:id -
Delete Route:
/dashboard/bookingManagement/paymentRecord/delete/:id
Dispute Data Object
Basic Information
-
Object Name:
dispute -
Display Name:
Dispute -
Component Name:
BookingManagementDisputeAppPage - Description: Represents a dispute, refund request, or booking issue reported by guest/host/admin for a reservation. Flows to admin for handling, resolves with resolutionStatus and reference to any refund/payment involved.
Object Properties
| Property Name | Type | Required | Default | Definition |
|---|
| reportedAt | Date | | N/A | Datetime when dispute was initiated. |
| reservationId | ID | | N/A | Reservation being disputed. |
| raisedBy | ID | | N/A | User who reported or opened dispute (guest/host). |
| adminId | ID | | N/A | Admin assigned for resolution, if any. |
| issueType | String | | N/A | Free-form or predefined dispute/refund type (e.g. refund, property damage, host no-show). |
| description | Text | | N/A | Dispute description for admin review, evidence, etc. |
| relatedPaymentId | ID | | N/A | Linked payment record (for referencing refund or adjustment). |
| resolutionStatus | Enum | | N/A | Dispute resolution state (0: pending, 1: reviewing, 2: resolved, 3: rejected). |
| resolvedAt | Date | | N/A | When the dispute was resolved (populated if resolutionStatus changed to resolved/rejected). |
| refundApproved | Boolean | | N/A | If a refund has been approved by admin for this dispute. |
Enum Properties
resolutionStatus Enum Property
Property Definition: Dispute resolution state (0: pending, 1: reviewing, 2: resolved, 3: rejected).
Enum Options
| Name | Value | Index |
|---|
| pending |
"pending"
| 0 |
| reviewing |
"reviewing"
| 1 |
| resolved |
"resolved"
| 2 |
| rejected |
"rejected"
| 3 |
Generated UI Components
-
List Component:
BookingManagementDisputeAppPageList- Displays paginated data with filtering and sorting -
Create Modal:
BookingManagementDisputeAppPageCreateModal- Form for creating new records -
Update Modal:
BookingManagementDisputeAppPageUpdateModal- Form for editing existing records -
Delete Modal:
BookingManagementDisputeAppPageDeleteModal- Confirmation dialog for deletion
API Endpoints
-
List:
GET /dispute/list- Retrieve paginated list of records -
Get:
GET /dispute/get- Retrieve single record by ID -
Create:
POST /dispute/create- Create new record -
Update:
PUT /dispute/update- Update existing record -
Delete:
DELETE /dispute/delete- Delete record by ID
Route Configuration
-
List Route:
/dashboard/bookingManagement/dispute -
Create Route:
/dashboard/bookingManagement/dispute/create -
Update Route:
/dashboard/bookingManagement/dispute/update/:id -
Delete Route:
/dashboard/bookingManagement/dispute/delete/:id
Sys_reservationPayment Data Object
Basic Information
-
Object Name:
sys_reservationPayment -
Display Name:
Sys_reservationPayment -
Component Name:
BookingManagementSys_reservationPaymentAppPage - Description: A payment storage object to store the payment life cyle of orders based on reservation object. It is autocreated based on the source object's checkout config
Object Properties
| Property Name | Type | Required | Default | Definition |
|---|
| ownerId | ID | | N/A | * An ID value to represent owner user who created the order* |
| orderId | ID | | N/A | an ID value to represent the orderId which is the ID parameter of the source reservation object |
| paymentId | String | | N/A | A String value to represent the paymentId which is generated on the Stripe gateway. This id may represent different objects due to the payment gateway and the chosen flow type |
| paymentStatus | String | | N/A | A string value to represent the payment status which belongs to the lifecyle of a Stripe payment. |
| statusLiteral | String | | N/A | A string value to represent the logical payment status which belongs to the application lifecycle itself. |
| redirectUrl | String | | N/A | A string value to represent return page of the frontend to show the result of the payment, this is used when the callback is made to server not the client. |
Generated UI Components
-
List Component:
BookingManagementSys_reservationPaymentAppPageList- Displays paginated data with filtering and sorting -
Create Modal:
BookingManagementSys_reservationPaymentAppPageCreateModal- Form for creating new records -
Update Modal:
BookingManagementSys_reservationPaymentAppPageUpdateModal- Form for editing existing records -
Delete Modal:
BookingManagementSys_reservationPaymentAppPageDeleteModal- Confirmation dialog for deletion
API Endpoints
-
List:
GET /sys_reservationPayment/list- Retrieve paginated list of records -
Get:
GET /sys_reservationPayment/get- Retrieve single record by ID -
Create:
POST /sys_reservationPayment/create- Create new record -
Update:
PUT /sys_reservationPayment/update- Update existing record -
Delete:
DELETE /sys_reservationPayment/delete- Delete record by ID
Route Configuration
-
List Route:
/dashboard/bookingManagement/sys_reservationPayment -
Create Route:
/dashboard/bookingManagement/sys_reservationPayment/create -
Update Route:
/dashboard/bookingManagement/sys_reservationPayment/update/:id -
Delete Route:
/dashboard/bookingManagement/sys_reservationPayment/delete/:id
Sys_paymentCustomer Data Object
Basic Information
-
Object Name:
sys_paymentCustomer -
Display Name:
Sys_paymentCustomer -
Component Name:
BookingManagementSys_paymentCustomerAppPage - Description: A payment storage object to store the customer values of the payment platform
Object Properties
| Property Name | Type | Required | Default | Definition |
|---|
| userId | ID | | N/A | * An ID value to represent the user who is created as a stripe customer* |
| customerId | String | | N/A | A string value to represent the customer id which is generated on the Stripe gateway. This id is used to represent the customer in the Stripe gateway |
| platform | String | | N/A | A String value to represent payment platform which is used to make the payment. It is stripe as default. It will be used to distinguesh the payment gateways in the future. |
Generated UI Components
-
List Component:
BookingManagementSys_paymentCustomerAppPageList- Displays paginated data with filtering and sorting -
Create Modal:
BookingManagementSys_paymentCustomerAppPageCreateModal- Form for creating new records -
Update Modal:
BookingManagementSys_paymentCustomerAppPageUpdateModal- Form for editing existing records -
Delete Modal:
BookingManagementSys_paymentCustomerAppPageDeleteModal- Confirmation dialog for deletion
API Endpoints
-
List:
GET /sys_paymentCustomer/list- Retrieve paginated list of records -
Get:
GET /sys_paymentCustomer/get- Retrieve single record by ID -
Create:
POST /sys_paymentCustomer/create- Create new record -
Update:
PUT /sys_paymentCustomer/update- Update existing record -
Delete:
DELETE /sys_paymentCustomer/delete- Delete record by ID
Route Configuration
-
List Route:
/dashboard/bookingManagement/sys_paymentCustomer -
Create Route:
/dashboard/bookingManagement/sys_paymentCustomer/create -
Update Route:
/dashboard/bookingManagement/sys_paymentCustomer/update/:id -
Delete Route:
/dashboard/bookingManagement/sys_paymentCustomer/delete/:id
Sys_paymentMethod Data Object
Basic Information
-
Object Name:
sys_paymentMethod -
Display Name:
Sys_paymentMethod -
Component Name:
BookingManagementSys_paymentMethodAppPage - Description: A payment storage object to store the payment methods of the platform customers
Object Properties
| Property Name | Type | Required | Default | Definition |
|---|
| paymentMethodId | String | | N/A | A string value to represent the id of the payment method on the payment platform. |
| userId | ID | | N/A | * An ID value to represent the user who owns the payment method* |
| customerId | String | | N/A | A string value to represent the customer id which is generated on the payment gateway. |
| cardHolderName | String | | N/A | A string value to represent the name of the card holder. It can be different than the registered customer. |
| cardHolderZip | String | | N/A | A string value to represent the zip code of the card holder. It is used for address verification in specific countries. |
| platform | String | | N/A | A String value to represent payment platform which teh paymentMethod belongs. It is stripe as default. It will be used to distinguesh the payment gateways in the future. |
| cardInfo | Object | | N/A | A Json value to store the card details of the payment method. |
Generated UI Components
-
List Component:
BookingManagementSys_paymentMethodAppPageList- Displays paginated data with filtering and sorting -
Create Modal:
BookingManagementSys_paymentMethodAppPageCreateModal- Form for creating new records -
Update Modal:
BookingManagementSys_paymentMethodAppPageUpdateModal- Form for editing existing records -
Delete Modal:
BookingManagementSys_paymentMethodAppPageDeleteModal- Confirmation dialog for deletion
API Endpoints
-
List:
GET /sys_paymentMethod/list- Retrieve paginated list of records -
Get:
GET /sys_paymentMethod/get- Retrieve single record by ID -
Create:
POST /sys_paymentMethod/create- Create new record -
Update:
PUT /sys_paymentMethod/update- Update existing record -
Delete:
DELETE /sys_paymentMethod/delete- Delete record by ID
Route Configuration
-
List Route:
/dashboard/bookingManagement/sys_paymentMethod -
Create Route:
/dashboard/bookingManagement/sys_paymentMethod/create -
Update Route:
/dashboard/bookingManagement/sys_paymentMethod/update/:id -
Delete Route:
/dashboard/bookingManagement/sys_paymentMethod/delete/:id
ReviewSystem Service Data Objects
Service Overview
-
Service Name:
reviewSystem -
Service Display Name:
ReviewSystem - Total Data Objects: 2
Data Objects
ReviewAggregate Data Object
Basic Information
-
Object Name:
reviewAggregate -
Display Name:
ReviewAggregate -
Component Name:
ReviewSystemReviewAggregateAppPage - Description: Cached aggregate rating stats for a listing, host, or guest. Used for fast lookup and display of averages, counts, etc.
Object Properties
| Property Name | Type | Required | Default | Definition |
|---|
| revieweeId | ID | | N/A | Listing or user profile receiving aggregate. |
| revieweeType | Enum | | N/A | Type of aggregate: host/listing/guest/profile. |
| averageRating | Double | | N/A | Numeric average of all published & approved review ratings for target entity. |
| reviewCount | Integer | | N/A | Count of reviews for this listing or profile (where published & approved). |
| visibilityStatus | Enum | | N/A | Should this rating be public or hidden (due to moderation, privacy, lack of reviews)? |
Enum Properties
revieweeType Enum Property
Property Definition: Type of aggregate: host/listing/guest/profile.
Enum Options
| Name | Value | Index |
|---|
| host |
"host"
| 0 |
| guest |
"guest"
| 1 |
| listing |
"listing"
| 2 |
visibilityStatus Enum Property
Property Definition: Should this rating be public or hidden (due to moderation, privacy, lack of reviews)?
Enum Options
| Name | Value | Index |
|---|
| public |
"public"
| 0 |
| hidden |
"hidden"
| 1 |
Generated UI Components
-
List Component:
ReviewSystemReviewAggregateAppPageList- Displays paginated data with filtering and sorting -
Create Modal:
ReviewSystemReviewAggregateAppPageCreateModal- Form for creating new records -
Update Modal:
ReviewSystemReviewAggregateAppPageUpdateModal- Form for editing existing records -
Delete Modal:
ReviewSystemReviewAggregateAppPageDeleteModal- Confirmation dialog for deletion
API Endpoints
-
List:
GET /reviewAggregate/list- Retrieve paginated list of records -
Get:
GET /reviewAggregate/get- Retrieve single record by ID -
Create:
POST /reviewAggregate/create- Create new record -
Update:
PUT /reviewAggregate/update- Update existing record -
Delete:
DELETE /reviewAggregate/delete- Delete record by ID
Route Configuration
-
List Route:
/dashboard/reviewSystem/reviewAggregate -
Create Route:
/dashboard/reviewSystem/reviewAggregate/create -
Update Route:
/dashboard/reviewSystem/reviewAggregate/update/:id -
Delete Route:
/dashboard/reviewSystem/reviewAggregate/delete/:id
Review Data Object
Basic Information
-
Object Name:
review -
Display Name:
Review -
Component Name:
ReviewSystemReviewAppPage - Description: Review submitted by a guest or host after a completed stay. Enables double-blind, supports moderation, and links to reservation/listing and users.
Object Properties
| Property Name | Type | Required | Default | Definition |
|---|
| moderationStatus | Enum | | N/A | Review moderation status: pending, approved, rejected. |
| isPublished | Boolean | | N/A | True if review is visible (published by double-blind business logic and moderation). |
| reviewText | Text | | N/A | Full review content written by reviewer. |
| rating | Integer | | N/A | Numeric rating (e.g. 1-5 stars or 1-10 scale). |
| blindSubmissionCode | String | | N/A | Random token used for double-blind: links the pair of reviews for a reservation (hidden until both submit or timer expires). |
| revieweeId | ID | | N/A | User or listing being reviewed (host/guest or listing). |
| reservationId | ID | | N/A | Booking this review is about. |
| reviewerId | ID | | N/A | User writing this review (host/guest of reservation). |
| revieweeType | Enum | | N/A | Entity being reviewed: host, guest, or listing. |
| submittedAt | Date | | N/A | Timestamp when review was created/submitted. |
Enum Properties
moderationStatus Enum Property
Property Definition: Review moderation status: pending, approved, rejected.
Enum Options
| Name | Value | Index |
|---|
| pending |
"pending"
| 0 |
| approved |
"approved"
| 1 |
| rejected |
"rejected"
| 2 |
revieweeType Enum Property
Property Definition: Entity being reviewed: host, guest, or listing.
Enum Options
| Name | Value | Index |
|---|
| host |
"host"
| 0 |
| guest |
"guest"
| 1 |
| listing |
"listing"
| 2 |
Generated UI Components
-
List Component:
ReviewSystemReviewAppPageList- Displays paginated data with filtering and sorting -
Create Modal:
ReviewSystemReviewAppPageCreateModal- Form for creating new records -
Update Modal:
ReviewSystemReviewAppPageUpdateModal- Form for editing existing records -
Delete Modal:
ReviewSystemReviewAppPageDeleteModal- Confirmation dialog for deletion
API Endpoints
-
List:
GET /review/list- Retrieve paginated list of records -
Get:
GET /review/get- Retrieve single record by ID -
Create:
POST /review/create- Create new record -
Update:
PUT /review/update- Update existing record -
Delete:
DELETE /review/delete- Delete record by ID
Route Configuration
-
List Route:
/dashboard/reviewSystem/review -
Create Route:
/dashboard/reviewSystem/review/create -
Update Route:
/dashboard/reviewSystem/review/update/:id -
Delete Route:
/dashboard/reviewSystem/review/delete/:id
Auth Service Data Objects
Service Overview
-
Service Name:
auth -
Service Display Name:
Auth - Total Data Objects: 3
Data Objects
User Data Object
Basic Information
-
Object Name:
user -
Display Name:
User -
Component Name:
AuthUserAppPage - Description: A data object that stores the user information and handles login settings.
Object Properties
| Property Name | Type | Required | Default | Definition |
|---|
| email | String | | N/A | * A string value to represent the user's email.* |
| password | String | | N/A | * A string value to represent the user's password. It will be stored as hashed.* |
| fullname | String | | N/A | A string value to represent the fullname of the user |
| avatar | String | | N/A | The avatar url of the user. A random avatar will be generated if not provided |
| roleId | String | | N/A | A string value to represent the roleId of the user. |
| emailVerified | Boolean | | N/A | A boolean value to represent the email verification status of the user. |
Generated UI Components
-
List Component:
AuthUserAppPageList- Displays paginated data with filtering and sorting -
Create Modal:
AuthUserAppPageCreateModal- Form for creating new records -
Update Modal:
AuthUserAppPageUpdateModal- Form for editing existing records -
Delete Modal:
AuthUserAppPageDeleteModal- Confirmation dialog for deletion
API Endpoints
-
List:
GET /user/list- Retrieve paginated list of records -
Get:
GET /user/get- Retrieve single record by ID -
Create:
POST /user/create- Create new record -
Update:
PUT /user/update- Update existing record -
Delete:
DELETE /user/delete- Delete record by ID
Route Configuration
-
List Route:
/dashboard/auth/user -
Create Route:
/dashboard/auth/user/create -
Update Route:
/dashboard/auth/user/update/:id -
Delete Route:
/dashboard/auth/user/delete/:id
UserGroup Data Object
Basic Information
-
Object Name:
userGroup -
Display Name:
UserGroup -
Component Name:
AuthUserGroupAppPage - Description: A data object that stores the user group information.
Object Properties
| Property Name | Type | Required | Default | Definition |
|---|
| groupName | String | | N/A | * A string value to represent the group name.* |
| avatar | String | | N/A | * A string value to represent the groups icon.* |
Generated UI Components
-
List Component:
AuthUserGroupAppPageList- Displays paginated data with filtering and sorting -
Create Modal:
AuthUserGroupAppPageCreateModal- Form for creating new records -
Update Modal:
AuthUserGroupAppPageUpdateModal- Form for editing existing records -
Delete Modal:
AuthUserGroupAppPageDeleteModal- Confirmation dialog for deletion
API Endpoints
-
List:
GET /userGroup/list- Retrieve paginated list of records -
Get:
GET /userGroup/get- Retrieve single record by ID -
Create:
POST /userGroup/create- Create new record -
Update:
PUT /userGroup/update- Update existing record -
Delete:
DELETE /userGroup/delete- Delete record by ID
Route Configuration
-
List Route:
/dashboard/auth/userGroup -
Create Route:
/dashboard/auth/userGroup/create -
Update Route:
/dashboard/auth/userGroup/update/:id -
Delete Route:
/dashboard/auth/userGroup/delete/:id
UserGroupMember Data Object
Basic Information
-
Object Name:
userGroupMember -
Display Name:
UserGroupMember -
Component Name:
AuthUserGroupMemberAppPage - Description: A data object that stores the members of the user group.
Object Properties
| Property Name | Type | Required | Default | Definition |
|---|
| groupId | ID | | N/A | * An ID value to represent the group that the user is asssigned as a memeber to.* |
| userId | ID | | N/A | * An ID value to represent the user that is assgined as a member to the group.* |
| ownerId | ID | | N/A | An ID value to represent the admin user who assgined the member. |
Generated UI Components
-
List Component:
AuthUserGroupMemberAppPageList- Displays paginated data with filtering and sorting -
Create Modal:
AuthUserGroupMemberAppPageCreateModal- Form for creating new records -
Update Modal:
AuthUserGroupMemberAppPageUpdateModal- Form for editing existing records -
Delete Modal:
AuthUserGroupMemberAppPageDeleteModal- Confirmation dialog for deletion
API Endpoints
-
List:
GET /userGroupMember/list- Retrieve paginated list of records -
Get:
GET /userGroupMember/get- Retrieve single record by ID -
Create:
POST /userGroupMember/create- Create new record -
Update:
PUT /userGroupMember/update- Update existing record -
Delete:
DELETE /userGroupMember/delete- Delete record by ID
Route Configuration
-
List Route:
/dashboard/auth/userGroupMember -
Create Route:
/dashboard/auth/userGroupMember/create -
Update Route:
/dashboard/auth/userGroupMember/update/:id -
Delete Route:
/dashboard/auth/userGroupMember/delete/:id
CRUD Operations
Create Operations
Create Form Implementation
// Create forms are generated as lazy-loaded modal components
// Basic form fields are rendered based on data object properties
Create API Integration
// Create operations are handled through service-specific API calls
// Basic validation is performed client-side
Read Operations
List View Implementation
// List views are implemented using MUI DataGrid
// Data is fetched through service-specific API calls
Update Operations
Update Form Implementation
// Update forms are generated as lazy-loaded modal components
// Basic form fields are pre-populated with existing data
Update API Integration
// Update operations are handled through service-specific API calls
// Basic validation is performed client-side
Delete Operations
Delete Implementation
// Delete operations are handled through service-specific API calls
// Confirmation dialogs are implemented as modal components
Data Validation
Client-Side Validation
Validation Implementation
// Basic validation is performed on form fields
// Required fields are validated before submission
Server-Side Validation Integration
API Error Handling
// Server validation errors are displayed to users
// Error messages are shown in the UI components
Data Relationships
Relationship Management
Relationship Implementation
// Basic data relationships are handled through form fields
// Related data is displayed in select components
User Experience Patterns
Loading States
Loading Implementation
// Loading states are handled by MUI DataGrid
// Skeleton loading is provided by the data grid component
Error States
Error Handling UI
// Error states are displayed through UI components
// Error messages are shown to users
Empty States
Empty State UI
// Empty states are handled by MUI DataGrid
// Empty content is displayed when no data is available
Performance Optimization
Data Pagination
Pagination Implementation
// Pagination is handled by MUI DataGrid
// Data is loaded in pages as needed