-
Notifications
You must be signed in to change notification settings - Fork 9
/
Copy pathschema.prisma
139 lines (124 loc) · 3.61 KB
/
schema.prisma
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
generator client {
provider = "prisma-client-js"
previewFeatures = ["postgresqlExtensions"]
}
generator dbml {
provider = "prisma-dbml-generator"
extensions = ["(function)"]
}
datasource db {
provider = "postgresql"
url = env("DATABASE_URL")
}
model Account {
id String @id @default(cuid())
userId String
type String
provider String
providerAccountId String
refresh_token String?
access_token String?
expires_at Int?
token_type String?
scope String?
id_token String?
session_state String?
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
@@unique([provider, providerAccountId])
@@index([userId])
}
model Session {
id String @id @default(cuid())
sessionToken String @unique
userId String
expires DateTime
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
@@index([userId])
}
model User {
id String @id @default(cuid())
email String @unique
passwordHash String?
name String?
image String?
emailVerified DateTime?
socketId String?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
accounts Account[]
blogs Blog[]
photos PhotoData[]
sessions Session[]
tripPlans TripPlan[]
volgs Vlog[]
membersOfTrip TripPlan[] @relation("TripPlanMembers")
@@index([email])
}
model TripPlan {
id String @id @default(cuid())
authorId String
data Json
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
location String?
blogs Blog[]
notifications Notification[]
photos PhotoData[]
author User @relation(fields: [authorId], references: [id])
vlogs Vlog[]
members User[] @relation("TripPlanMembers")
@@index([authorId])
}
model Notification {
id String @id @default(cuid())
tripPlanId String
content String
read Boolean @default(false)
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
tripPlan TripPlan @relation(fields: [tripPlanId], references: [id])
}
model Blog {
id String @id @default(cuid())
title String
content String
authorId String
status STAUS @default(PRIVATE)
tripPlanId String
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
author User @relation(fields: [authorId], references: [id])
tripPlan TripPlan @relation(fields: [tripPlanId], references: [id])
}
model Vlog {
id String @id @default(cuid())
title String
content String
authorId String
status STAUS @default(PRIVATE)
tripPlanId String
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
author User @relation(fields: [authorId], references: [id])
tripPlan TripPlan @relation(fields: [tripPlanId], references: [id])
}
model PhotoData {
id String @id @default(cuid())
url String
tripPlanId String
authorId String
caption String?
status STAUS @default(PRIVATE)
location String?
features String?
timeInString String?
device String?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
author User @relation(fields: [authorId], references: [id])
tripPlan TripPlan @relation(fields: [tripPlanId], references: [id])
}
enum STAUS {
PUBLIC
PRIVATE
}