Files
lovelope/prisma/schema.prisma
T
jeanGaston 1064a0362b Initial commit: baseline snapshot before UI/UX refactor
Captures the existing lovelope.app codebase (Next.js App Router,
custom Tailwind components, Prisma) as a rollback point prior to
adopting shadcn/ui and a mobile-first redesign.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-29 19:27:12 +02:00

65 lines
2.1 KiB
Plaintext

generator client {
provider = "prisma-client-js"
binaryTargets = ["native", "linux-musl-openssl-3.0.x"]
}
datasource db {
provider = "sqlite"
url = env("DATABASE_URL")
}
model Proposal {
id String @id @default(cuid())
slug String @unique
manageToken String @unique
senderName String
recipientName String
title String
message String
theme String @default("sunset")
gradientFrom String?
gradientVia String?
gradientTo String?
gifUrl String?
evasiveNo Boolean @default(false)
status String @default("draft")
expiresAt DateTime?
createdAt DateTime @default(now())
activities ActivityOption[]
response Response?
}
model ActivityOption {
id String @id @default(cuid())
proposalId String
proposal Proposal @relation(fields: [proposalId], references: [id], onDelete: Cascade)
title String
description String?
emoji String @default("🎉")
order Int @default(0)
slots TimeSlot[]
responses Response[] @relation("SelectedActivity")
}
model TimeSlot {
id String @id @default(cuid())
activityOptionId String
activity ActivityOption @relation(fields: [activityOptionId], references: [id], onDelete: Cascade)
label String
startsAt String?
responses Response[] @relation("SelectedSlot")
}
model Response {
id String @id @default(cuid())
proposalId String @unique
proposal Proposal @relation(fields: [proposalId], references: [id], onDelete: Cascade)
selectedActivityId String?
selectedActivity ActivityOption? @relation("SelectedActivity", fields: [selectedActivityId], references: [id])
selectedTimeSlotId String?
selectedTimeSlot TimeSlot? @relation("SelectedSlot", fields: [selectedTimeSlotId], references: [id])
answer String
note String?
respondedAt DateTime @default(now())
}