@@ -36,15 +36,15 @@ abstract model Base {
36
36
* Model for a space in which users can collaborate on Lists and Todos
37
37
*/
38
38
model Space extends Base {
39
- id String @id @default(uuid())
40
- createdAt DateTime @default(now())
41
- updatedAt DateTime @updatedAt
42
- name String @length(4, 50)
43
- slug String @length(4, 16)
44
- owner User? @relation(fields: [ownerId], references: [id])
45
- ownerId String ?
46
- members SpaceUser[]
47
- lists List[]
39
+ id String @id @default(uuid())
40
+ createdAt DateTime @default(now())
41
+ updatedAt DateTime @updatedAt
42
+ name String @length(4, 50)
43
+ slug String @length(4, 16)
44
+ owner User? @relation(fields: [ownerId], references: [id])
45
+ ownerId String ?
46
+ members SpaceUser[]
47
+ lists List[]
48
48
unsupported Unsupported ('foo' )
49
49
50
50
// require login
@@ -66,14 +66,14 @@ model Space extends Base {
66
66
* Model representing membership of a user in a space
67
67
*/
68
68
model SpaceUser {
69
- id String @id @default(uuid())
69
+ id String @id @default(uuid())
70
70
createdAt DateTime @default(now())
71
71
updatedAt DateTime @updatedAt
72
- space Space @relation(fields: [spaceId], references: [id], onDelete: Cascade)
73
- spaceId String
74
- user User @relation(fields: [userId], references: [id], onDelete: Cascade)
75
- userId String
76
- role UserRole
72
+ space Space @relation(fields: [spaceId], references: [id], onDelete: Cascade)
73
+ spaceId String
74
+ user User @relation(fields: [userId], references: [id], onDelete: Cascade)
75
+ userId String
76
+ role UserRole
77
77
@@unique([userId, spaceId])
78
78
79
79
// require login
@@ -92,18 +92,18 @@ model SpaceUser {
92
92
* Model for a user
93
93
*/
94
94
model User {
95
- id String @id @default(uuid())
96
- createdAt DateTime @default(now())
97
- updatedAt DateTime @updatedAt
98
- email String @unique @email
99
- password String ? @password @omit
95
+ id String @id @default(uuid())
96
+ createdAt DateTime @default(now())
97
+ updatedAt DateTime @updatedAt
98
+ email String @unique @email
99
+ password String ? @password @omit
100
100
emailVerified DateTime ?
101
- name String ?
102
- ownedSpaces Space[]
103
- spaces SpaceUser[]
104
- image String ? @url
105
- lists List[]
106
- todos Todo[]
101
+ name String ?
102
+ ownedSpaces Space[]
103
+ spaces SpaceUser[]
104
+ image String ? @url
105
+ lists List[]
106
+ todos Todo[]
107
107
108
108
// can be created by anyone, even not logged in
109
109
@@allow('create' , true )
@@ -119,16 +119,16 @@ model User {
119
119
* Model for a Todo list
120
120
*/
121
121
model List {
122
- id String @id @default(uuid())
122
+ id String @id @default(uuid())
123
123
createdAt DateTime @default(now())
124
124
updatedAt DateTime @updatedAt
125
- space Space @relation(fields: [spaceId], references: [id], onDelete: Cascade)
126
- spaceId String
127
- owner User @relation(fields: [ownerId], references: [id], onDelete: Cascade)
128
- ownerId String
129
- title String @length(1, 100)
130
- private Boolean @default(false )
131
- todos Todo[]
125
+ space Space @relation(fields: [spaceId], references: [id], onDelete: Cascade)
126
+ spaceId String
127
+ owner User @relation(fields: [ownerId], references: [id], onDelete: Cascade)
128
+ ownerId String
129
+ title String @length(1, 100)
130
+ private Boolean @default(false )
131
+ todos Todo[]
132
132
133
133
// require login
134
134
@@deny('all' , auth() == null )
@@ -151,14 +151,14 @@ model List {
151
151
* Model for a single Todo
152
152
*/
153
153
model Todo {
154
- id String @id @default(uuid())
155
- createdAt DateTime @default(now())
156
- updatedAt DateTime @updatedAt
157
- owner User @relation(fields: [ownerId], references: [id], onDelete: Cascade)
158
- ownerId String
159
- list List @relation(fields: [listId], references: [id], onDelete: Cascade)
160
- listId String
161
- title String @length(1, 100)
154
+ id String @id @default(uuid())
155
+ createdAt DateTime @default(now())
156
+ updatedAt DateTime @updatedAt
157
+ owner User @relation(fields: [ownerId], references: [id], onDelete: Cascade)
158
+ ownerId String
159
+ list List @relation(fields: [listId], references: [id], onDelete: Cascade)
160
+ listId String
161
+ title String @length(1, 100)
162
162
completedAt DateTime ?
163
163
164
164
// require login
@@ -173,7 +173,18 @@ model Todo {
173
173
}
174
174
175
175
view SpaceWithMembers {
176
- id String @unique
176
+ id String @unique
177
177
name String
178
178
slug String
179
179
}
180
+
181
+ model Image {
182
+ id Int @id @default(autoincrement())
183
+ metadata Json
184
+ }
185
+
186
+ type Metadata {
187
+ width Int
188
+ height Int
189
+ format String
190
+ }
0 commit comments