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()) }