launchbase 1.1.2 → 1.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,12 +1,28 @@
1
+ -- CreateEnum
2
+ CREATE TYPE "Role" AS ENUM ('OWNER', 'ADMIN', 'MEMBER');
3
+
4
+ -- ============================================
5
+ -- Enum Types
6
+ -- ============================================
7
+
8
+ -- ============================================
9
+ -- Core Multi-Tenant Models
10
+ -- ============================================
11
+
1
12
  -- CreateTable
2
13
  CREATE TABLE "User" (
3
14
  "id" TEXT NOT NULL,
4
15
  "email" TEXT NOT NULL,
5
- "passwordHash" TEXT NOT NULL,
16
+ "name" TEXT,
17
+ "image" TEXT,
18
+ "passwordHash" TEXT,
6
19
  "emailVerified" TIMESTAMP(3),
7
20
  "twoFactorSecret" TEXT,
8
21
  "twoFactorEnabled" BOOLEAN NOT NULL DEFAULT false,
22
+ "oauthProvider" TEXT,
23
+ "oauthId" TEXT,
9
24
  "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
25
+ "updatedAt" TIMESTAMP(3) NOT NULL,
10
26
 
11
27
  CONSTRAINT "User_pkey" PRIMARY KEY ("id")
12
28
  );
@@ -16,47 +32,110 @@ CREATE TABLE "Organization" (
16
32
  "id" TEXT NOT NULL,
17
33
  "name" TEXT NOT NULL,
18
34
  "slug" TEXT NOT NULL,
35
+ "ownerId" TEXT NOT NULL,
19
36
  "plan" TEXT NOT NULL DEFAULT 'free',
20
37
  "stripeCustomerId" TEXT,
21
38
  "stripeSubscriptionId" TEXT,
22
39
  "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
40
+ "updatedAt" TIMESTAMP(3) NOT NULL,
23
41
 
24
42
  CONSTRAINT "Organization_pkey" PRIMARY KEY ("id")
25
43
  );
26
44
 
27
45
  -- CreateTable
28
- CREATE TABLE "Membership" (
46
+ CREATE TABLE "OrganizationMember" (
29
47
  "id" TEXT NOT NULL,
48
+ "organizationId" TEXT NOT NULL,
30
49
  "userId" TEXT NOT NULL,
31
- "orgId" TEXT NOT NULL,
32
- "role" TEXT NOT NULL DEFAULT 'MEMBER',
50
+ "role" "Role" NOT NULL DEFAULT 'MEMBER',
33
51
  "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
34
52
 
35
- CONSTRAINT "Membership_pkey" PRIMARY KEY ("id")
53
+ CONSTRAINT "OrganizationMember_pkey" PRIMARY KEY ("id")
36
54
  );
37
55
 
38
56
  -- CreateTable
39
57
  CREATE TABLE "Project" (
40
58
  "id" TEXT NOT NULL,
41
- "orgId" TEXT NOT NULL,
59
+ "organizationId" TEXT NOT NULL,
42
60
  "name" TEXT NOT NULL,
43
- "description" TEXT,
61
+ "slug" TEXT NOT NULL,
44
62
  "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
63
+ "updatedAt" TIMESTAMP(3) NOT NULL,
45
64
 
46
65
  CONSTRAINT "Project_pkey" PRIMARY KEY ("id")
47
66
  );
48
67
 
68
+ -- ============================================
69
+ -- Project-Scoped Resources
70
+ -- ============================================
71
+
49
72
  -- CreateTable
50
- CREATE TABLE "RefreshToken" (
73
+ CREATE TABLE "EdgeFunction" (
51
74
  "id" TEXT NOT NULL,
52
- "userId" TEXT NOT NULL,
53
- "tokenHash" TEXT NOT NULL,
54
- "expiresAt" TIMESTAMP(3) NOT NULL,
75
+ "projectId" TEXT NOT NULL,
76
+ "name" TEXT NOT NULL,
77
+ "slug" TEXT NOT NULL,
78
+ "runtime" TEXT NOT NULL DEFAULT 'nodejs18',
79
+ "sourceCode" TEXT NOT NULL,
80
+ "environment" JSONB,
81
+ "triggers" JSONB,
82
+ "status" TEXT NOT NULL DEFAULT 'draft',
83
+ "deployedAt" TIMESTAMP(3),
84
+ "deploymentUrl" TEXT,
55
85
  "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
86
+ "updatedAt" TIMESTAMP(3) NOT NULL,
56
87
 
57
- CONSTRAINT "RefreshToken_pkey" PRIMARY KEY ("id")
88
+ CONSTRAINT "EdgeFunction_pkey" PRIMARY KEY ("id")
58
89
  );
59
90
 
91
+ -- CreateTable
92
+ CREATE TABLE "EdgeFunctionLog" (
93
+ "id" TEXT NOT NULL,
94
+ "functionId" TEXT NOT NULL,
95
+ "status" TEXT NOT NULL,
96
+ "duration" INTEGER NOT NULL,
97
+ "input" JSONB,
98
+ "output" JSONB,
99
+ "error" TEXT,
100
+ "triggeredBy" TEXT,
101
+ "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
102
+
103
+ CONSTRAINT "EdgeFunctionLog_pkey" PRIMARY KEY ("id")
104
+ );
105
+
106
+ -- CreateTable
107
+ CREATE TABLE "VectorCollection" (
108
+ "id" TEXT NOT NULL,
109
+ "projectId" TEXT NOT NULL,
110
+ "name" TEXT NOT NULL,
111
+ "provider" TEXT NOT NULL DEFAULT 'local',
112
+ "dimension" INTEGER NOT NULL DEFAULT 1536,
113
+ "embeddingModel" TEXT NOT NULL DEFAULT 'text-embedding-3-small',
114
+ "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
115
+ "updatedAt" TIMESTAMP(3) NOT NULL,
116
+
117
+ CONSTRAINT "VectorCollection_pkey" PRIMARY KEY ("id")
118
+ );
119
+
120
+ -- CreateTable
121
+ CREATE TABLE "Deployment" (
122
+ "id" TEXT NOT NULL,
123
+ "projectId" TEXT NOT NULL,
124
+ "status" TEXT NOT NULL DEFAULT 'pending',
125
+ "version" TEXT,
126
+ "deployedAt" TIMESTAMP(3),
127
+ "platform" TEXT,
128
+ "url" TEXT,
129
+ "logs" JSONB,
130
+ "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
131
+
132
+ CONSTRAINT "Deployment_pkey" PRIMARY KEY ("id")
133
+ );
134
+
135
+ -- ============================================
136
+ -- Auth & Session Models
137
+ -- ============================================
138
+
60
139
  -- CreateTable
61
140
  CREATE TABLE "VerificationToken" (
62
141
  "id" TEXT NOT NULL,
@@ -79,25 +158,55 @@ CREATE TABLE "PasswordResetToken" (
79
158
  CONSTRAINT "PasswordResetToken_pkey" PRIMARY KEY ("id")
80
159
  );
81
160
 
161
+ -- CreateTable
162
+ CREATE TABLE "RefreshToken" (
163
+ "id" TEXT NOT NULL,
164
+ "userId" TEXT NOT NULL,
165
+ "tokenHash" TEXT NOT NULL,
166
+ "revokedAt" TIMESTAMP(3),
167
+ "expiresAt" TIMESTAMP(3) NOT NULL,
168
+ "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
169
+
170
+ CONSTRAINT "RefreshToken_pkey" PRIMARY KEY ("id")
171
+ );
172
+
82
173
  -- CreateTable
83
174
  CREATE TABLE "Invitation" (
84
175
  "id" TEXT NOT NULL,
85
- "orgId" TEXT NOT NULL,
86
176
  "email" TEXT NOT NULL,
87
- "role" TEXT NOT NULL DEFAULT 'MEMBER',
177
+ "orgId" TEXT NOT NULL,
178
+ "role" "Role" NOT NULL DEFAULT 'MEMBER',
88
179
  "token" TEXT NOT NULL,
89
180
  "expiresAt" TIMESTAMP(3) NOT NULL,
90
- "acceptedAt" TIMESTAMP(3),
91
181
  "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
182
+ "acceptedAt" TIMESTAMP(3),
92
183
 
93
184
  CONSTRAINT "Invitation_pkey" PRIMARY KEY ("id")
94
185
  );
95
186
 
187
+ -- CreateTable
188
+ CREATE TABLE "OAuthAccount" (
189
+ "id" TEXT NOT NULL,
190
+ "userId" TEXT NOT NULL,
191
+ "provider" TEXT NOT NULL,
192
+ "providerId" TEXT NOT NULL,
193
+ "accessToken" TEXT,
194
+ "refreshToken" TEXT,
195
+ "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
196
+
197
+ CONSTRAINT "OAuthAccount_pkey" PRIMARY KEY ("id")
198
+ );
199
+
200
+ -- ============================================
201
+ -- Other Models
202
+ -- ============================================
203
+
96
204
  -- CreateTable
97
205
  CREATE TABLE "AuditLog" (
98
206
  "id" TEXT NOT NULL,
99
207
  "orgId" TEXT,
100
208
  "userId" TEXT,
209
+ "projectId" TEXT,
101
210
  "action" TEXT NOT NULL,
102
211
  "entity" TEXT,
103
212
  "entityId" TEXT,
@@ -109,24 +218,12 @@ CREATE TABLE "AuditLog" (
109
218
  CONSTRAINT "AuditLog_pkey" PRIMARY KEY ("id")
110
219
  );
111
220
 
112
- -- CreateTable
113
- CREATE TABLE "OAuthAccount" (
114
- "id" TEXT NOT NULL,
115
- "userId" TEXT NOT NULL,
116
- "provider" TEXT NOT NULL,
117
- "providerId" TEXT NOT NULL,
118
- "accessToken" TEXT,
119
- "refreshToken" TEXT,
120
- "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
121
-
122
- CONSTRAINT "OAuthAccount_pkey" PRIMARY KEY ("id")
123
- );
124
-
125
221
  -- CreateTable
126
222
  CREATE TABLE "File" (
127
223
  "id" TEXT NOT NULL,
128
224
  "userId" TEXT NOT NULL,
129
225
  "orgId" TEXT,
226
+ "projectId" TEXT,
130
227
  "filename" TEXT NOT NULL,
131
228
  "originalName" TEXT NOT NULL,
132
229
  "mimeType" TEXT NOT NULL,
@@ -138,89 +235,179 @@ CREATE TABLE "File" (
138
235
  CONSTRAINT "File_pkey" PRIMARY KEY ("id")
139
236
  );
140
237
 
141
- -- CreateIndex
142
- CREATE UNIQUE INDEX "User_email_key" ON "User"("email");
238
+ -- CreateTable
239
+ CREATE TABLE "ScannedProject" (
240
+ "id" TEXT NOT NULL,
241
+ "userId" TEXT NOT NULL,
242
+ "name" TEXT NOT NULL,
243
+ "repositoryUrl" TEXT,
244
+ "framework" TEXT,
245
+ "detectedApis" JSONB,
246
+ "detectedModels" JSONB,
247
+ "detectedAuth" JSONB,
248
+ "suggestedSetup" JSONB,
249
+ "status" TEXT NOT NULL DEFAULT 'pending',
250
+ "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
251
+ "updatedAt" TIMESTAMP(3) NOT NULL,
252
+
253
+ CONSTRAINT "ScannedProject_pkey" PRIMARY KEY ("id")
254
+ );
255
+
256
+ -- CreateTable
257
+ CREATE TABLE "DBCollection" (
258
+ "id" TEXT NOT NULL,
259
+ "projectId" TEXT NOT NULL,
260
+ "name" TEXT NOT NULL,
261
+ "description" TEXT,
262
+ "schema" JSONB,
263
+ "indexes" JSONB,
264
+ "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
265
+ "updatedAt" TIMESTAMP(3) NOT NULL,
266
+
267
+ CONSTRAINT "DBCollection_pkey" PRIMARY KEY ("id")
268
+ );
269
+
270
+ -- CreateTable
271
+ CREATE TABLE "DBDocument" (
272
+ "id" TEXT NOT NULL,
273
+ "collectionId" TEXT NOT NULL,
274
+ "data" JSONB NOT NULL,
275
+ "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
276
+ "updatedAt" TIMESTAMP(3) NOT NULL,
277
+
278
+ CONSTRAINT "DBDocument_pkey" PRIMARY KEY ("id")
279
+ );
280
+
281
+ -- ============================================
282
+ -- Indexes
283
+ -- ============================================
143
284
 
144
- -- CreateIndex
285
+ -- User indexes
286
+ CREATE UNIQUE INDEX "User_email_key" ON "User"("email");
145
287
  CREATE INDEX "User_email_idx" ON "User"("email");
288
+ CREATE INDEX "User_oauthProvider_oauthId_idx" ON "User"("oauthProvider", "oauthId");
146
289
 
147
- -- CreateIndex
290
+ -- Organization indexes
148
291
  CREATE UNIQUE INDEX "Organization_slug_key" ON "Organization"("slug");
292
+ CREATE INDEX "Organization_slug_idx" ON "Organization"("slug");
293
+ CREATE INDEX "Organization_ownerId_idx" ON "Organization"("ownerId");
149
294
 
150
- -- CreateIndex
151
- CREATE INDEX "Membership_userId_idx" ON "Membership"("userId");
295
+ -- OrganizationMember indexes
296
+ CREATE INDEX "OrganizationMember_organizationId_idx" ON "OrganizationMember"("organizationId");
297
+ CREATE INDEX "OrganizationMember_userId_idx" ON "OrganizationMember"("userId");
298
+ CREATE UNIQUE INDEX "OrganizationMember_organizationId_userId_key" ON "OrganizationMember"("organizationId", "userId");
152
299
 
153
- -- CreateIndex
154
- CREATE INDEX "Membership_orgId_idx" ON "Membership"("orgId");
300
+ -- Project indexes
301
+ CREATE INDEX "Project_organizationId_idx" ON "Project"("organizationId");
302
+ CREATE INDEX "Project_slug_idx" ON "Project"("slug");
303
+ CREATE UNIQUE INDEX "Project_organizationId_slug_key" ON "Project"("organizationId", "slug");
155
304
 
156
- -- CreateIndex
157
- CREATE UNIQUE INDEX "Membership_userId_orgId_key" ON "Membership"("userId", "orgId");
305
+ -- EdgeFunction indexes
306
+ CREATE INDEX "EdgeFunction_projectId_idx" ON "EdgeFunction"("projectId");
307
+ CREATE INDEX "EdgeFunction_status_idx" ON "EdgeFunction"("status");
308
+ CREATE UNIQUE INDEX "EdgeFunction_projectId_slug_key" ON "EdgeFunction"("projectId", "slug");
158
309
 
159
- -- CreateIndex
160
- CREATE INDEX "Project_orgId_idx" ON "Project"("orgId");
310
+ -- EdgeFunctionLog indexes
311
+ CREATE INDEX "EdgeFunctionLog_functionId_idx" ON "EdgeFunctionLog"("functionId");
312
+ CREATE INDEX "EdgeFunctionLog_createdAt_idx" ON "EdgeFunctionLog"("createdAt");
161
313
 
162
- -- CreateIndex
163
- CREATE INDEX "RefreshToken_userId_idx" ON "RefreshToken"("userId");
314
+ -- VectorCollection indexes
315
+ CREATE INDEX "VectorCollection_projectId_idx" ON "VectorCollection"("projectId");
316
+ CREATE UNIQUE INDEX "VectorCollection_projectId_name_key" ON "VectorCollection"("projectId", "name");
164
317
 
165
- -- CreateIndex
318
+ -- Deployment indexes
319
+ CREATE INDEX "Deployment_projectId_idx" ON "Deployment"("projectId");
320
+ CREATE INDEX "Deployment_status_idx" ON "Deployment"("status");
321
+
322
+ -- VerificationToken indexes
166
323
  CREATE UNIQUE INDEX "VerificationToken_token_key" ON "VerificationToken"("token");
167
324
 
168
- -- CreateIndex
325
+ -- PasswordResetToken indexes
169
326
  CREATE UNIQUE INDEX "PasswordResetToken_token_key" ON "PasswordResetToken"("token");
170
327
 
171
- -- CreateIndex
172
- CREATE INDEX "Invitation_orgId_idx" ON "Invitation"("orgId");
328
+ -- RefreshToken indexes
329
+ CREATE INDEX "RefreshToken_userId_idx" ON "RefreshToken"("userId");
173
330
 
174
- -- CreateIndex
331
+ -- Invitation indexes
332
+ CREATE INDEX "Invitation_orgId_idx" ON "Invitation"("orgId");
333
+ CREATE UNIQUE INDEX "Invitation_email_orgId_key" ON "Invitation"("email", "orgId");
175
334
  CREATE UNIQUE INDEX "Invitation_token_key" ON "Invitation"("token");
176
335
 
177
- -- CreateIndex
178
- CREATE INDEX "AuditLog_orgId_idx" ON "AuditLog"("orgId");
336
+ -- OAuthAccount indexes
337
+ CREATE UNIQUE INDEX "OAuthAccount_provider_providerId_key" ON "OAuthAccount"("provider", "providerId");
338
+ CREATE INDEX "OAuthAccount_userId_idx" ON "OAuthAccount"("userId");
179
339
 
180
- -- CreateIndex
340
+ -- AuditLog indexes
341
+ CREATE INDEX "AuditLog_orgId_idx" ON "AuditLog"("orgId");
181
342
  CREATE INDEX "AuditLog_userId_idx" ON "AuditLog"("userId");
182
-
183
- -- CreateIndex
343
+ CREATE INDEX "AuditLog_projectId_idx" ON "AuditLog"("projectId");
184
344
  CREATE INDEX "AuditLog_action_idx" ON "AuditLog"("action");
185
-
186
- -- CreateIndex
187
345
  CREATE INDEX "AuditLog_createdAt_idx" ON "AuditLog"("createdAt");
188
346
 
189
- -- CreateIndex
190
- CREATE UNIQUE INDEX "OAuthAccount_provider_providerId_key" ON "OAuthAccount"("provider", "providerId");
347
+ -- File indexes
348
+ CREATE INDEX "File_userId_idx" ON "File"("userId");
349
+ CREATE INDEX "File_orgId_idx" ON "File"("orgId");
350
+ CREATE INDEX "File_projectId_idx" ON "File"("projectId");
191
351
 
192
- -- CreateIndex
193
- CREATE INDEX "OAuthAccount_userId_idx" ON "OAuthAccount"("userId");
352
+ -- ScannedProject indexes
353
+ CREATE INDEX "ScannedProject_userId_idx" ON "ScannedProject"("userId");
354
+ CREATE INDEX "ScannedProject_status_idx" ON "ScannedProject"("status");
194
355
 
195
- -- CreateIndex
196
- CREATE INDEX "File_userId_idx" ON "File"("userId");
356
+ -- DBCollection indexes
357
+ CREATE INDEX "DBCollection_projectId_idx" ON "DBCollection"("projectId");
358
+ CREATE UNIQUE INDEX "DBCollection_projectId_name_key" ON "DBCollection"("projectId", "name");
197
359
 
198
- -- CreateIndex
199
- CREATE INDEX "File_orgId_idx" ON "File"("orgId");
360
+ -- DBDocument indexes
361
+ CREATE INDEX "DBDocument_collectionId_idx" ON "DBDocument"("collectionId");
200
362
 
201
- -- AddForeignKey
202
- ALTER TABLE "Membership" ADD CONSTRAINT "Membership_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE;
363
+ -- ============================================
364
+ -- Foreign Keys
365
+ -- ============================================
203
366
 
204
- -- AddForeignKey
205
- ALTER TABLE "Membership" ADD CONSTRAINT "Membership_orgId_fkey" FOREIGN KEY ("orgId") REFERENCES "Organization"("id") ON DELETE CASCADE ON UPDATE CASCADE;
367
+ -- Organization -> User (owner)
368
+ ALTER TABLE "Organization" ADD CONSTRAINT "Organization_ownerId_fkey" FOREIGN KEY ("ownerId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE;
206
369
 
207
- -- AddForeignKey
208
- ALTER TABLE "Project" ADD CONSTRAINT "Project_orgId_fkey" FOREIGN KEY ("orgId") REFERENCES "Organization"("id") ON DELETE CASCADE ON UPDATE CASCADE;
370
+ -- OrganizationMember -> Organization
371
+ ALTER TABLE "OrganizationMember" ADD CONSTRAINT "OrganizationMember_organizationId_fkey" FOREIGN KEY ("organizationId") REFERENCES "Organization"("id") ON DELETE CASCADE ON UPDATE CASCADE;
209
372
 
210
- -- AddForeignKey
211
- ALTER TABLE "RefreshToken" ADD CONSTRAINT "RefreshToken_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE;
373
+ -- OrganizationMember -> User
374
+ ALTER TABLE "OrganizationMember" ADD CONSTRAINT "OrganizationMember_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE;
375
+
376
+ -- Project -> Organization
377
+ ALTER TABLE "Project" ADD CONSTRAINT "Project_organizationId_fkey" FOREIGN KEY ("organizationId") REFERENCES "Organization"("id") ON DELETE CASCADE ON UPDATE CASCADE;
212
378
 
213
- -- AddForeignKey
379
+ -- EdgeFunction -> Project
380
+ ALTER TABLE "EdgeFunction" ADD CONSTRAINT "EdgeFunction_projectId_fkey" FOREIGN KEY ("projectId") REFERENCES "Project"("id") ON DELETE CASCADE ON UPDATE CASCADE;
381
+
382
+ -- EdgeFunctionLog -> EdgeFunction
383
+ ALTER TABLE "EdgeFunctionLog" ADD CONSTRAINT "EdgeFunctionLog_functionId_fkey" FOREIGN KEY ("functionId") REFERENCES "EdgeFunction"("id") ON DELETE CASCADE ON UPDATE CASCADE;
384
+
385
+ -- VectorCollection -> Project
386
+ ALTER TABLE "VectorCollection" ADD CONSTRAINT "VectorCollection_projectId_fkey" FOREIGN KEY ("projectId") REFERENCES "Project"("id") ON DELETE CASCADE ON UPDATE CASCADE;
387
+
388
+ -- Deployment -> Project
389
+ ALTER TABLE "Deployment" ADD CONSTRAINT "Deployment_projectId_fkey" FOREIGN KEY ("projectId") REFERENCES "Project"("id") ON DELETE CASCADE ON UPDATE CASCADE;
390
+
391
+ -- VerificationToken -> User
214
392
  ALTER TABLE "VerificationToken" ADD CONSTRAINT "VerificationToken_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE;
215
393
 
216
- -- AddForeignKey
394
+ -- PasswordResetToken -> User
217
395
  ALTER TABLE "PasswordResetToken" ADD CONSTRAINT "PasswordResetToken_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE;
218
396
 
219
- -- AddForeignKey
397
+ -- RefreshToken -> User
398
+ ALTER TABLE "RefreshToken" ADD CONSTRAINT "RefreshToken_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE;
399
+
400
+ -- Invitation -> Organization
220
401
  ALTER TABLE "Invitation" ADD CONSTRAINT "Invitation_orgId_fkey" FOREIGN KEY ("orgId") REFERENCES "Organization"("id") ON DELETE CASCADE ON UPDATE CASCADE;
221
402
 
222
- -- AddForeignKey
403
+ -- OAuthAccount -> User
223
404
  ALTER TABLE "OAuthAccount" ADD CONSTRAINT "OAuthAccount_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE;
224
405
 
225
- -- AddForeignKey
406
+ -- File -> User
226
407
  ALTER TABLE "File" ADD CONSTRAINT "File_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE;
408
+
409
+ -- DBCollection -> Project
410
+ ALTER TABLE "DBCollection" ADD CONSTRAINT "DBCollection_projectId_fkey" FOREIGN KEY ("projectId") REFERENCES "Project"("id") ON DELETE CASCADE ON UPDATE CASCADE;
411
+
412
+ -- DBDocument -> DBCollection
413
+ ALTER TABLE "DBDocument" ADD CONSTRAINT "DBDocument_collectionId_fkey" FOREIGN KEY ("collectionId") REFERENCES "DBCollection"("id") ON DELETE CASCADE ON UPDATE CASCADE;