Adds the complete Next.js website including i18n routing, house and apartment pages, Beds24 v2 integration for live availability/pricing, Stripe checkout, contact forms, Docker setup and deployment docs. Generated with [Devin](https://devin.ai) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
66 lines
1.7 KiB
Plaintext
66 lines
1.7 KiB
Plaintext
generator client {
|
|
provider = "prisma-client-js"
|
|
}
|
|
|
|
datasource db {
|
|
provider = "postgresql"
|
|
url = env("DATABASE_URL")
|
|
}
|
|
|
|
model Booking {
|
|
id String @id @default(cuid())
|
|
bookingReference String @unique
|
|
apartmentSlug String
|
|
houseId String
|
|
beds24PropertyId String
|
|
beds24RoomId String
|
|
guestEmail String
|
|
guestName String
|
|
checkIn DateTime
|
|
checkOut DateTime
|
|
nights Int
|
|
totalAmount Decimal @db.Decimal(10, 2)
|
|
depositAmount Decimal @db.Decimal(10, 2)
|
|
currency String @default("EUR")
|
|
status String @default("pending") // pending, deposit_paid, confirmed, cancelled
|
|
|
|
// Stripe mapping (per house account)
|
|
stripeAccountId String
|
|
stripeCustomerId String?
|
|
stripeCheckoutSessionId String?
|
|
stripePaymentIntentId String?
|
|
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
|
|
invoices Invoice[]
|
|
}
|
|
|
|
model Invoice {
|
|
id String @id @default(cuid())
|
|
bookingId String
|
|
booking Booking @relation(fields: [bookingId], references: [id], onDelete: Cascade)
|
|
|
|
invoiceNumber String @unique
|
|
amount Decimal @db.Decimal(10, 2)
|
|
currency String @default("EUR")
|
|
dueDate DateTime
|
|
status String @default("pending") // pending, paid, overdue, cancelled
|
|
|
|
// Stripe invoice mapping
|
|
stripeInvoiceId String?
|
|
stripeInvoiceUrl String?
|
|
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
}
|
|
|
|
model StripeEvent {
|
|
id String @id @default(cuid())
|
|
eventId String @unique
|
|
accountId String
|
|
type String
|
|
payload String
|
|
processedAt DateTime @default(now())
|
|
}
|