M1 Database Schema
The M1 database supports villa onboarding and ongoing property management. It is a PostgreSQL schema generated from Prisma migrations.
Core Tables
Section titled “Core Tables”| Table | Purpose | Notes |
|---|---|---|
Villa | Primary villa record and property attributes | Central parent table for most M1 data |
Owner | Owner records (individual or company) | Linked to Villa |
ContractualDetails | Contract terms and management agreements | Linked to Villa |
BankDetails | Owner payment/banking info | Linked to Villa |
OTACredentials | Credentials for OTA platforms | Linked to Villa |
Staff | Staff assignments and HR info | Linked to Villa |
Photo | Photo gallery metadata | Linked to Villa |
Document | Uploaded documents metadata | Linked to Villa |
FacilityChecklist | Facilities and inventory checklist items | Linked to Villa |
OnboardingProgress | High-level onboarding state | Linked to Villa |
OnboardingBackup | Snapshot of onboarding data | Linked to Villa |
OnboardingStepProgress | Per-step onboarding progress | Linked to Villa |
StepFieldProgress | Field-level completion tracking | Linked to OnboardingStepProgress |
SkippedItem | Tracks skipped steps/fields | Linked to Villa |
OnboardingSession | Active onboarding session metadata | Linked to Villa |
Key Relationships
Section titled “Key Relationships”Owner.villaId→Villa.idContractualDetails.villaId→Villa.idBankDetails.villaId→Villa.idOTACredentials.villaId→Villa.idStaff.villaId→Villa.idPhoto.villaId→Villa.idDocument.villaId→Villa.idFacilityChecklist.villaId→Villa.idOnboardingProgress.villaId→Villa.idOnboardingBackup.villaId→Villa.idOnboardingStepProgress.villaId→Villa.idStepFieldProgress.stepProgressId→OnboardingStepProgress.idSkippedItem.villaId→Villa.idOnboardingSession.villaId→Villa.id
| Enum | Values |
|---|---|
PropertyType | VILLA, APARTMENT, PENTHOUSE, TOWNHOUSE, CHALET, BUNGALOW, ESTATE, HOUSE |
VillaStyle | MODERN, TRADITIONAL, MEDITERRANEAN, CONTEMPORARY, BALINESE, MINIMALIST, LUXURY, RUSTIC |
VillaStatus | DRAFT, ACTIVE, INACTIVE, ARCHIVED |
OwnerType | INDIVIDUAL, COMPANY, TRUST, OTHER |
CommunicationPreference | EMAIL, PHONE, WHATSAPP, SMS |
ContractType | EXCLUSIVE, NON_EXCLUSIVE, SEASONAL, LONG_TERM |
PaymentSchedule | WEEKLY, BIWEEKLY, MONTHLY, QUARTERLY, ANNUALLY |
CancellationPolicy | FLEXIBLE, MODERATE, STRICT, SUPER_STRICT, NON_REFUNDABLE |
OTAPlatform | BOOKING_COM, AIRBNB, VRBO, EXPEDIA, AGODA, HOTELS_COM, TRIPADVISOR, MARRIOTT_HOMES_VILLAS, HOMEAWAY, FLIPKEY, DIRECT |
SyncStatus | PENDING, IN_PROGRESS, SUCCESS, FAILED, PARTIAL |
StaffPosition | VILLA_MANAGER, HOUSEKEEPER, GARDENER, POOL_MAINTENANCE, SECURITY, CHEF, DRIVER, CONCIERGE, MAINTENANCE, OTHER |
StaffDepartment | MANAGEMENT, HOUSEKEEPING, MAINTENANCE, SECURITY, HOSPITALITY, ADMINISTRATION |
EmploymentType | FULL_TIME, PART_TIME, CONTRACT, SEASONAL, FREELANCE |
EmergencyContactRelationship | SPOUSE, PARTNER, PARENT, CHILD, SIBLING, FRIEND, COLLEAGUE, NEIGHBOR, RELATIVE, OTHER |
SalaryFrequency | HOURLY, DAILY, WEEKLY, BIWEEKLY, MONTHLY, ANNUALLY |
PhotoCategory | EXTERIOR_VIEWS, INTERIOR_LIVING_SPACES, BEDROOMS, BATHROOMS, KITCHEN, DINING_AREAS, POOL_OUTDOOR_AREAS, GARDEN_LANDSCAPING, AMENITIES_FACILITIES, VIEWS_SURROUNDINGS, STAFF_AREAS, UTILITY_AREAS, LOGO, FLOOR_PLAN, VIDEOS, DRONE_SHOTS, ENTERTAINMENT, VIRTUAL_TOUR, OTHER |
DocumentType | PROPERTY_CONTRACT, INSURANCE_CERTIFICATE, PROPERTY_TITLE, TAX_DOCUMENTS, UTILITY_BILLS, MAINTENANCE_RECORDS, INVENTORY_LIST, HOUSE_RULES, EMERGENCY_CONTACTS, STAFF_CONTRACTS, LICENSES_PERMITS, FLOOR_PLANS, OTHER, MAINTENANCE_CONTRACTS |
FacilityCategory | property_layout_spaces, occupancy_sleeping, bathrooms, kitchen_dining, service_staff, living_spaces, outdoor_facilities, home_office, entertainment_gaming, technology, wellness_spa, accessibility, safety_security, child_friendly, KITCHEN_EQUIPMENT, BATHROOM_AMENITIES, BEDROOM_AMENITIES, LIVING_ROOM, OUTDOOR_FACILITIES, POOL_AREA, ENTERTAINMENT, SAFETY_SECURITY, UTILITIES, ACCESSIBILITY, BUSINESS_FACILITIES, CHILDREN_FACILITIES, PET_FACILITIES, OTHER |
OnboardingStatus | NOT_STARTED, IN_PROGRESS, COMPLETED |
StepStatus | NOT_STARTED, IN_PROGRESS, COMPLETED, SKIPPED, BLOCKED, ERROR |
FieldStatus | NOT_STARTED, IN_PROGRESS, COMPLETED, SKIPPED, ERROR |
SkippedItemType | STEP, FIELD, SECTION |
SkipCategory | NOT_APPLICABLE, DATA_UNAVAILABLE, LATER, OPTIONAL, PRIVACY_CONCERNS, OTHER |
- Most M1 data hangs off the
Villatable and cascades on delete. - Onboarding progress is tracked at step and field levels for granular completion reporting.
Source
Section titled “Source”Schema extracted from D:\Development\m2-main\db_export\m1.sql.