@@ -36,15 +36,15 @@ abstract model Base {
3636 * Model for a space in which users can collaborate on Lists and Todos
3737 */
3838model 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[]
4848 unsupported Unsupported ('foo' )
4949
5050 // require login
@@ -66,14 +66,14 @@ model Space extends Base {
6666 * Model representing membership of a user in a space
6767 */
6868model SpaceUser {
69- id String @id @default(uuid())
69+ id String @id @default(uuid())
7070 createdAt DateTime @default(now())
7171 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
7777 @@unique([userId, spaceId])
7878
7979 // require login
@@ -92,18 +92,18 @@ model SpaceUser {
9292 * Model for a user
9393 */
9494model 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
100100 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[]
107107
108108 // can be created by anyone, even not logged in
109109 @@allow('create' , true )
@@ -119,16 +119,16 @@ model User {
119119 * Model for a Todo list
120120 */
121121model List {
122- id String @id @default(uuid())
122+ id String @id @default(uuid())
123123 createdAt DateTime @default(now())
124124 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[]
132132
133133 // require login
134134 @@deny('all' , auth() == null )
@@ -151,14 +151,14 @@ model List {
151151 * Model for a single Todo
152152 */
153153model 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)
162162 completedAt DateTime ?
163163
164164 // require login
@@ -173,7 +173,18 @@ model Todo {
173173}
174174
175175view SpaceWithMembers {
176- id String @unique
176+ id String @unique
177177 name String
178178 slug String
179179}
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