Files
page-builder/prisma/schema.prisma
jaybe 3e223a45d4
CI / test (push) Failing after 4m41s
CI / pr_and_merge (push) Has been skipped
폼 전송 TDD추가 및 암호화 적용 중
2025-12-02 11:02:15 +09:00

77 lines
2.0 KiB
Plaintext

// This is your Prisma schema file,
// learn more about it in the docs: https://pris.ly/d/prisma-schema
// Looking for ways to speed up your queries, or scale easily with your serverless or edge functions?
// Try Prisma Accelerate: https://pris.ly/cli/accelerate-init
generator client {
provider = "prisma-client-js"
binaryTargets = ["native", "linux-musl-arm64-openssl-3.0.x"]
}
datasource db {
provider = "postgresql"
url = env("DATABASE_URL")
}
model Project {
id String @id @default(uuid())
title String
slug String @unique
status ProjectStatus @default(DRAFT)
contentJson Json
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
assets Asset[]
formSubmissions FormSubmission[]
// 인증 도입을 위한 관계: 프로젝트는 특정 User 가 소유할 수 있다.
userId String?
user User? @relation(fields: [userId], references: [id])
}
model User {
id String @id @default(uuid())
email String @unique
passwordHash String
tokenVersion Int @default(0)
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
projects Project[]
formSubmissions FormSubmission[]
}
model Asset {
id String @id @default(uuid())
project Project @relation(fields: [projectId], references: [id], onDelete: Cascade)
projectId String
kind String
url String
hash String?
meta Json?
createdAt DateTime @default(now())
}
enum ProjectStatus {
DRAFT
PUBLISHED
ARCHIVED
}
model FormSubmission {
id String @id @default(uuid())
project Project? @relation(fields: [projectId], references: [id], onDelete: SetNull)
projectId String?
projectSlug String
user User? @relation(fields: [userId], references: [id], onDelete: SetNull)
userId String?
payloadJson Json
sensitiveEnc String?
metaJson Json?
createdAt DateTime @default(now())
}