334 lines
8.1 KiB
Plaintext
Executable File
334 lines
8.1 KiB
Plaintext
Executable File
generator photon {
|
|
provider = "photonjs"
|
|
}
|
|
|
|
model User {
|
|
id String @default(cuid()) @id
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
firstName String
|
|
lastName String
|
|
email String @unique
|
|
password String
|
|
phone String
|
|
responseRate Float?
|
|
responseTime Int?
|
|
ReportsTo User? @relation("EmployeeToEmployee_ReportsTo")
|
|
employees User[] @relation("EmployeeToEmployee_ReportsTo")
|
|
isSuperHost Boolean
|
|
ownedPlaces Place[]
|
|
location Location?
|
|
bookings Booking[]
|
|
paymentAccount PaymentAccount[]
|
|
sentMessages Message[] @relation("SentMessages")
|
|
receivedMessages Message[] @relation("ReceivedMessages")
|
|
notifications Notification[]
|
|
profilePicture Picture?
|
|
hostingExperiences Experience[]
|
|
}
|
|
|
|
model Place {
|
|
id String @default(cuid()) @id
|
|
name String
|
|
size PLACE_SIZES?
|
|
shortDescription String
|
|
description String
|
|
slug String
|
|
maxGuests Int
|
|
numBedrooms Int
|
|
numBeds Int
|
|
numBaths Int
|
|
reviews Review[]
|
|
amenities Amenities
|
|
host User
|
|
pricing Pricing
|
|
location Location
|
|
views Views
|
|
guestRequirements GuestRequirements?
|
|
policies Policies?
|
|
houseRules HouseRules?
|
|
bookings Booking[]
|
|
pictures Picture[]
|
|
popularity Int
|
|
}
|
|
|
|
model Pricing {
|
|
id String @default(cuid()) @id
|
|
place Place
|
|
monthlyDiscount Int?
|
|
weeklyDiscount Int?
|
|
perNight Int
|
|
smartPricing Boolean
|
|
basePrice Int
|
|
averageWeekly Int
|
|
averageMonthly Int
|
|
cleaningFee Int?
|
|
securityDeposit Int?
|
|
extraGuests Int?
|
|
weekendPricing Int?
|
|
currency CURRENCY?
|
|
}
|
|
|
|
model GuestRequirements {
|
|
id String @default(cuid()) @id
|
|
govIssuedId Boolean
|
|
recommendationsFromOtherHosts Boolean
|
|
guestTripInformation Boolean
|
|
place Place
|
|
}
|
|
|
|
model Policies {
|
|
id String @default(cuid()) @id
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
checkInStartTime Float
|
|
checkInEndTime Float
|
|
checkoutTime Float
|
|
place Place
|
|
}
|
|
|
|
model HouseRules {
|
|
id String @default(cuid()) @id
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
suitableForChildren Boolean?
|
|
suitableForInfants Boolean?
|
|
petsAllowed Boolean?
|
|
smokingAllowed Boolean?
|
|
partiesAndEventsAllowed Boolean?
|
|
additionalRules String?
|
|
}
|
|
|
|
model Views {
|
|
id String @default(cuid()) @id
|
|
lastWeek Int
|
|
place Place
|
|
}
|
|
|
|
model Location {
|
|
id String @default(cuid()) @id
|
|
lat Float
|
|
lng Float
|
|
neighbourHood Neighbourhood?
|
|
user User?
|
|
place Place?
|
|
address String
|
|
directions String
|
|
experience Experience?
|
|
restaurant Restaurant?
|
|
}
|
|
|
|
model Neighbourhood {
|
|
id String @default(cuid()) @id
|
|
locations Location[]
|
|
name String
|
|
slug String
|
|
homePreview Picture?
|
|
city City
|
|
featured Boolean
|
|
popularity Int
|
|
}
|
|
|
|
model City {
|
|
id String @default(cuid()) @id
|
|
name String
|
|
neighbourhoods Neighbourhood[]
|
|
}
|
|
|
|
model Picture {
|
|
id String @default(cuid()) @id
|
|
url String
|
|
}
|
|
|
|
model Experience {
|
|
id String @default(cuid()) @id
|
|
category ExperienceCategory?
|
|
title String
|
|
host User
|
|
location Location
|
|
pricePerPerson Int
|
|
reviews Review[]
|
|
preview Picture
|
|
popularity Int
|
|
}
|
|
|
|
model ExperienceCategory {
|
|
id String @default(cuid()) @id
|
|
mainColor String
|
|
name String
|
|
experience Experience?
|
|
}
|
|
|
|
model Amenities {
|
|
id String @default(cuid()) @id
|
|
place Place
|
|
elevator Boolean
|
|
petsAllowed Boolean
|
|
internet Boolean
|
|
kitchen Boolean
|
|
wirelessInternet Boolean
|
|
familyKidFriendly Boolean
|
|
freeParkingOnPremises Boolean
|
|
hotTub Boolean
|
|
pool Boolean
|
|
smokingAllowed Boolean
|
|
wheelchairAccessible Boolean
|
|
breakfast Boolean
|
|
cableTv Boolean
|
|
suitableForEvents Boolean
|
|
dryer Boolean
|
|
washer Boolean
|
|
indoorFireplace Boolean
|
|
tv Boolean
|
|
heating Boolean
|
|
hangers Boolean
|
|
iron Boolean
|
|
hairDryer Boolean
|
|
doorman Boolean
|
|
paidParkingOffPremises Boolean
|
|
freeParkingOnStreet Boolean
|
|
gym Boolean
|
|
airConditioning Boolean
|
|
shampoo Boolean
|
|
essentials Boolean
|
|
laptopFriendlyWorkspace Boolean
|
|
privateEntrance Boolean
|
|
buzzerWirelessIntercom Boolean
|
|
babyBath Boolean
|
|
babyMonitor Boolean
|
|
babysitterRecommendations Boolean
|
|
bathtub Boolean
|
|
changingTable Boolean
|
|
childrensBooksAndToys Boolean
|
|
childrensDinnerware Boolean
|
|
crib Boolean
|
|
}
|
|
|
|
model Review {
|
|
id String @default(cuid()) @id
|
|
createdAt DateTime @default(now())
|
|
text String
|
|
stars Int
|
|
accuracy Int
|
|
location Int
|
|
checkIn Int
|
|
value Int
|
|
cleanliness Int
|
|
communication Int
|
|
place Place
|
|
experience Experience?
|
|
}
|
|
|
|
model Booking {
|
|
id String @default(cuid()) @id
|
|
createdAt DateTime @default(now())
|
|
bookee User
|
|
place Place
|
|
startDate DateTime
|
|
endDate DateTime
|
|
payment Payment?
|
|
}
|
|
|
|
model Payment {
|
|
id String @default(cuid()) @id
|
|
createdAt DateTime @default(now())
|
|
serviceFee Float
|
|
placePrice Float
|
|
totalPrice Float
|
|
booking Booking
|
|
paymentMethod PaymentAccount
|
|
}
|
|
|
|
model PaymentAccount {
|
|
id String @default(cuid()) @id
|
|
createdAt DateTime @default(now())
|
|
type PAYMENT_PROVIDER?
|
|
user User
|
|
payments Payment[]
|
|
paypal PaypalInformation?
|
|
creditcard CreditCardInformation?
|
|
}
|
|
|
|
model PaypalInformation {
|
|
id String @default(cuid()) @id
|
|
createdAt DateTime @default(now())
|
|
email String
|
|
paymentAccount PaymentAccount
|
|
}
|
|
|
|
model CreditCardInformation {
|
|
id String @default(cuid()) @id
|
|
createdAt DateTime @default(now())
|
|
cardNumber String
|
|
expiresOnMonth Int
|
|
expiresOnYear Int
|
|
securityCode String
|
|
firstName String
|
|
lastName String
|
|
postalCode String
|
|
country String
|
|
paymentAccount PaymentAccount?
|
|
}
|
|
|
|
model Message {
|
|
id String @default(cuid()) @id
|
|
createdAt DateTime @default(now())
|
|
from User @relation("SentMessages")
|
|
to User @relation("ReceivedMessages")
|
|
deliveredAt DateTime
|
|
readAt DateTime
|
|
}
|
|
|
|
model Notification {
|
|
id String @default(cuid()) @id
|
|
createdAt DateTime @default(now())
|
|
type NOTIFICATION_TYPE?
|
|
user User
|
|
link String
|
|
readDate DateTime
|
|
}
|
|
|
|
model Restaurant {
|
|
id String @default(cuid()) @id
|
|
createdAt DateTime @default(now())
|
|
title String
|
|
avgPricePerPerson Int
|
|
pictures Picture[]
|
|
location Location
|
|
isCurated Boolean
|
|
slug String
|
|
popularity Int
|
|
}
|
|
|
|
enum CURRENCY {
|
|
CAD
|
|
CHF
|
|
EUR
|
|
JPY
|
|
USD
|
|
ZAR
|
|
}
|
|
|
|
enum PLACE_SIZES {
|
|
ENTIRE_HOUSE
|
|
ENTIRE_APARTMENT
|
|
ENTIRE_EARTH_HOUSE
|
|
ENTIRE_CABIN
|
|
ENTIRE_VILLA
|
|
ENTIRE_PLACE
|
|
ENTIRE_BOAT
|
|
PRIVATE_ROOM
|
|
}
|
|
|
|
enum PAYMENT_PROVIDER {
|
|
PAYPAL
|
|
CREDIT_CARD
|
|
}
|
|
|
|
enum NOTIFICATION_TYPE {
|
|
OFFER
|
|
INSTANT_BOOK
|
|
RESPONSIVENESS
|
|
NEW_AMENITIES
|
|
HOUSE_RULES
|
|
} |