@actuate-media/cms-core 0.20.0 → 0.21.0

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.
Files changed (50) hide show
  1. package/LICENSE +21 -21
  2. package/dist/__tests__/fields/component-block.test.d.ts +2 -0
  3. package/dist/__tests__/fields/component-block.test.d.ts.map +1 -0
  4. package/dist/__tests__/fields/component-block.test.js +129 -0
  5. package/dist/__tests__/fields/component-block.test.js.map +1 -0
  6. package/dist/config/types.d.ts +61 -1
  7. package/dist/config/types.d.ts.map +1 -1
  8. package/dist/fields/component-block.d.ts +23 -0
  9. package/dist/fields/component-block.d.ts.map +1 -0
  10. package/dist/fields/component-block.js +137 -0
  11. package/dist/fields/component-block.js.map +1 -0
  12. package/dist/fields/index.d.ts.map +1 -1
  13. package/dist/fields/index.js +2 -0
  14. package/dist/fields/index.js.map +1 -1
  15. package/package.json +1 -1
  16. package/prisma/cms-schema.prisma +306 -306
  17. package/prisma/migrations/0001_init/migration.sql +384 -384
  18. package/prisma/migrations/0002_folders/migration.sql +39 -39
  19. package/prisma/migrations/0003_search_and_webhooks/migration.sql +50 -50
  20. package/prisma/migrations/0004_script_tags/migration.sql +21 -21
  21. package/prisma/migrations/0005_password_reset_tokens/migration.sql +20 -20
  22. package/prisma/migrations/0006_page_builder/migration.sql +38 -38
  23. package/prisma/migrations/migration_lock.toml +3 -3
  24. package/prisma/schema.prisma +549 -549
  25. package/generated/browser.ts +0 -109
  26. package/generated/client.ts +0 -133
  27. package/generated/commonInputTypes.ts +0 -709
  28. package/generated/enums.ts +0 -125
  29. package/generated/internal/class.ts +0 -376
  30. package/generated/internal/prismaNamespace.ts +0 -2617
  31. package/generated/internal/prismaNamespaceBrowser.ts +0 -611
  32. package/generated/models/ApiKey.ts +0 -1550
  33. package/generated/models/AuditLog.ts +0 -1206
  34. package/generated/models/BackupRecord.ts +0 -1250
  35. package/generated/models/ContentLock.ts +0 -1472
  36. package/generated/models/ContentTemplate.ts +0 -1416
  37. package/generated/models/Document.ts +0 -3005
  38. package/generated/models/Folder.ts +0 -1904
  39. package/generated/models/FormSubmission.ts +0 -1200
  40. package/generated/models/InAppNotification.ts +0 -1457
  41. package/generated/models/Media.ts +0 -2340
  42. package/generated/models/MediaUsage.ts +0 -1472
  43. package/generated/models/OAuthAccount.ts +0 -1463
  44. package/generated/models/Redirect.ts +0 -1284
  45. package/generated/models/Session.ts +0 -1492
  46. package/generated/models/Site.ts +0 -1206
  47. package/generated/models/User.ts +0 -3513
  48. package/generated/models/Version.ts +0 -1511
  49. package/generated/models/WorkflowState.ts +0 -1514
  50. package/generated/models.ts +0 -29
@@ -1,384 +1,384 @@
1
- -- CreateSchema
2
- CREATE SCHEMA IF NOT EXISTS "public";
3
-
4
- -- CreateEnum
5
- CREATE TYPE "DocumentStatus" AS ENUM ('DRAFT', 'PUBLISHED', 'ARCHIVED', 'SCHEDULED', 'SCHEDULED_UNPUBLISH');
6
-
7
- -- CreateEnum
8
- CREATE TYPE "UserRole" AS ENUM ('ADMIN', 'EDITOR', 'AUTHOR', 'CLIENT');
9
-
10
- -- CreateEnum
11
- CREATE TYPE "ChangeType" AS ENUM ('CREATE', 'UPDATE', 'PUBLISH', 'RESTORE');
12
-
13
- -- CreateEnum
14
- CREATE TYPE "AuditEvent" AS ENUM ('login_success', 'login_failed', 'logout', 'password_change', 'password_reset_request', 'password_reset_complete', 'totp_enabled', 'totp_disabled', 'api_key_created', 'api_key_revoked', 'document_created', 'document_updated', 'document_published', 'document_deleted', 'media_uploaded', 'media_deleted', 'user_created', 'user_updated', 'user_deactivated', 'settings_changed', 'export_requested', 'import_completed');
15
-
16
- -- CreateEnum
17
- CREATE TYPE "NotificationType" AS ENUM ('DOCUMENT_PUBLISHED', 'DOCUMENT_ASSIGNED', 'REVIEW_REQUESTED', 'REVIEW_APPROVED', 'COMMENT_ADDED', 'SYSTEM_ALERT', 'WORKFLOW_STEP');
18
-
19
- -- CreateEnum
20
- CREATE TYPE "OrderStatus" AS ENUM ('PENDING', 'CONFIRMED', 'PROCESSING', 'SHIPPED', 'DELIVERED', 'CANCELLED', 'REFUNDED');
21
-
22
- -- CreateEnum
23
- CREATE TYPE "PaymentStatus" AS ENUM ('PENDING', 'AUTHORIZED', 'CAPTURED', 'FAILED', 'REFUNDED', 'PARTIALLY_REFUNDED');
24
-
25
- -- CreateEnum
26
- CREATE TYPE "DiscountType" AS ENUM ('PERCENTAGE', 'FIXED_AMOUNT', 'FREE_SHIPPING');
27
-
28
- -- CreateEnum
29
- CREATE TYPE "ProductType" AS ENUM ('PHYSICAL', 'DIGITAL', 'SUBSCRIPTION', 'BUNDLE');
30
-
31
- -- CreateTable
32
- CREATE TABLE "actuate_users" (
33
- "id" TEXT NOT NULL,
34
- "email" TEXT NOT NULL,
35
- "name" TEXT NOT NULL,
36
- "avatarUrl" TEXT,
37
- "role" "UserRole" NOT NULL DEFAULT 'AUTHOR',
38
- "passwordHash" TEXT,
39
- "totpSecret" TEXT,
40
- "authProvider" TEXT,
41
- "isActive" BOOLEAN NOT NULL DEFAULT true,
42
- "isApproved" BOOLEAN NOT NULL DEFAULT false,
43
- "emailVerified" BOOLEAN NOT NULL DEFAULT false,
44
- "lastLoginAt" TIMESTAMP(3),
45
- "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
46
- "updatedAt" TIMESTAMP(3) NOT NULL,
47
-
48
- CONSTRAINT "actuate_users_pkey" PRIMARY KEY ("id")
49
- );
50
-
51
- -- CreateTable
52
- CREATE TABLE "actuate_oauth_accounts" (
53
- "id" TEXT NOT NULL,
54
- "userId" TEXT NOT NULL,
55
- "provider" TEXT NOT NULL,
56
- "providerAccountId" TEXT NOT NULL,
57
- "accessToken" TEXT,
58
- "refreshToken" TEXT,
59
- "expiresAt" TIMESTAMP(3),
60
- "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
61
-
62
- CONSTRAINT "actuate_oauth_accounts_pkey" PRIMARY KEY ("id")
63
- );
64
-
65
- -- CreateTable
66
- CREATE TABLE "actuate_sessions" (
67
- "id" TEXT NOT NULL,
68
- "userId" TEXT NOT NULL,
69
- "token" TEXT NOT NULL,
70
- "expiresAt" TIMESTAMP(3) NOT NULL,
71
- "revokedAt" TIMESTAMP(3),
72
- "ipAddress" TEXT,
73
- "userAgent" TEXT,
74
- "fingerprintHash" TEXT,
75
- "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
76
-
77
- CONSTRAINT "actuate_sessions_pkey" PRIMARY KEY ("id")
78
- );
79
-
80
- -- CreateTable
81
- CREATE TABLE "actuate_api_keys" (
82
- "id" TEXT NOT NULL,
83
- "name" TEXT NOT NULL,
84
- "keyHash" TEXT NOT NULL,
85
- "keyPrefix" TEXT NOT NULL,
86
- "userId" TEXT NOT NULL,
87
- "scopes" JSONB NOT NULL,
88
- "ipRestrictions" JSONB,
89
- "expiresAt" TIMESTAMP(3),
90
- "lastUsedAt" TIMESTAMP(3),
91
- "revokedAt" TIMESTAMP(3),
92
- "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
93
-
94
- CONSTRAINT "actuate_api_keys_pkey" PRIMARY KEY ("id")
95
- );
96
-
97
- -- CreateTable
98
- CREATE TABLE "actuate_audit_logs" (
99
- "id" TEXT NOT NULL,
100
- "event" TEXT NOT NULL,
101
- "userId" TEXT,
102
- "ipAddress" TEXT,
103
- "userAgent" TEXT,
104
- "details" JSONB,
105
- "timestamp" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
106
-
107
- CONSTRAINT "actuate_audit_logs_pkey" PRIMARY KEY ("id")
108
- );
109
-
110
- -- CreateTable
111
- CREATE TABLE "actuate_documents" (
112
- "id" TEXT NOT NULL,
113
- "collection" TEXT NOT NULL,
114
- "data" JSONB NOT NULL,
115
- "status" "DocumentStatus" NOT NULL DEFAULT 'DRAFT',
116
- "locale" TEXT,
117
- "localeGroupId" TEXT,
118
- "createdById" TEXT NOT NULL,
119
- "updatedById" TEXT NOT NULL,
120
- "publishedAt" TIMESTAMP(3),
121
- "scheduledAt" TIMESTAMP(3),
122
- "scheduledUnpublishAt" TIMESTAMP(3),
123
- "deletedAt" TIMESTAMP(3),
124
- "searchVector" TEXT,
125
- "plainText" TEXT,
126
- "contentHash" TEXT,
127
- "structuredData" JSONB,
128
- "contentGraph" JSONB,
129
- "siteId" TEXT,
130
- "templateId" TEXT,
131
- "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
132
- "updatedAt" TIMESTAMP(3) NOT NULL,
133
-
134
- CONSTRAINT "actuate_documents_pkey" PRIMARY KEY ("id")
135
- );
136
-
137
- -- CreateTable
138
- CREATE TABLE "actuate_versions" (
139
- "id" TEXT NOT NULL,
140
- "documentId" TEXT NOT NULL,
141
- "data" JSONB NOT NULL,
142
- "changedById" TEXT NOT NULL,
143
- "changeType" "ChangeType" NOT NULL,
144
- "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
145
-
146
- CONSTRAINT "actuate_versions_pkey" PRIMARY KEY ("id")
147
- );
148
-
149
- -- CreateTable
150
- CREATE TABLE "actuate_media" (
151
- "id" TEXT NOT NULL,
152
- "filename" TEXT NOT NULL,
153
- "storageKey" TEXT NOT NULL,
154
- "mimeType" TEXT NOT NULL,
155
- "fileSize" INTEGER NOT NULL,
156
- "width" INTEGER,
157
- "height" INTEGER,
158
- "altText" TEXT,
159
- "title" TEXT,
160
- "uploadedById" TEXT NOT NULL,
161
- "focalPointX" DOUBLE PRECISION,
162
- "focalPointY" DOUBLE PRECISION,
163
- "blurHash" TEXT,
164
- "aiAltText" TEXT,
165
- "aiTags" JSONB,
166
- "aiDescription" TEXT,
167
- "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
168
- "updatedAt" TIMESTAMP(3) NOT NULL,
169
-
170
- CONSTRAINT "actuate_media_pkey" PRIMARY KEY ("id")
171
- );
172
-
173
- -- CreateTable
174
- CREATE TABLE "actuate_media_usages" (
175
- "id" TEXT NOT NULL,
176
- "mediaId" TEXT NOT NULL,
177
- "documentId" TEXT NOT NULL,
178
- "fieldName" TEXT NOT NULL,
179
- "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
180
-
181
- CONSTRAINT "actuate_media_usages_pkey" PRIMARY KEY ("id")
182
- );
183
-
184
- -- CreateTable
185
- CREATE TABLE "actuate_content_locks" (
186
- "id" TEXT NOT NULL,
187
- "documentId" TEXT NOT NULL,
188
- "userId" TEXT NOT NULL,
189
- "lockedAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
190
- "expiresAt" TIMESTAMP(3) NOT NULL,
191
-
192
- CONSTRAINT "actuate_content_locks_pkey" PRIMARY KEY ("id")
193
- );
194
-
195
- -- CreateTable
196
- CREATE TABLE "actuate_notifications" (
197
- "id" TEXT NOT NULL,
198
- "userId" TEXT NOT NULL,
199
- "type" TEXT NOT NULL,
200
- "title" TEXT NOT NULL,
201
- "message" TEXT,
202
- "link" TEXT,
203
- "read" BOOLEAN NOT NULL DEFAULT false,
204
- "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
205
-
206
- CONSTRAINT "actuate_notifications_pkey" PRIMARY KEY ("id")
207
- );
208
-
209
- -- CreateTable
210
- CREATE TABLE "actuate_content_templates" (
211
- "id" TEXT NOT NULL,
212
- "name" TEXT NOT NULL,
213
- "collection" TEXT NOT NULL,
214
- "templateData" JSONB NOT NULL,
215
- "createdById" TEXT NOT NULL,
216
- "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
217
- "updatedAt" TIMESTAMP(3) NOT NULL,
218
-
219
- CONSTRAINT "actuate_content_templates_pkey" PRIMARY KEY ("id")
220
- );
221
-
222
- -- CreateTable
223
- CREATE TABLE "actuate_sites" (
224
- "id" TEXT NOT NULL,
225
- "domain" TEXT NOT NULL,
226
- "name" TEXT NOT NULL,
227
- "configOverrides" JSONB,
228
- "isDefault" BOOLEAN NOT NULL DEFAULT false,
229
- "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
230
- "updatedAt" TIMESTAMP(3) NOT NULL,
231
-
232
- CONSTRAINT "actuate_sites_pkey" PRIMARY KEY ("id")
233
- );
234
-
235
- -- CreateTable
236
- CREATE TABLE "actuate_workflow_states" (
237
- "id" TEXT NOT NULL,
238
- "documentId" TEXT NOT NULL,
239
- "currentStep" INTEGER NOT NULL DEFAULT 0,
240
- "assignedToId" TEXT,
241
- "status" TEXT NOT NULL DEFAULT 'pending',
242
- "definition" JSONB NOT NULL,
243
- "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
244
- "updatedAt" TIMESTAMP(3) NOT NULL,
245
-
246
- CONSTRAINT "actuate_workflow_states_pkey" PRIMARY KEY ("id")
247
- );
248
-
249
- -- CreateTable
250
- CREATE TABLE "actuate_redirects" (
251
- "id" TEXT NOT NULL,
252
- "source" TEXT NOT NULL,
253
- "destination" TEXT NOT NULL,
254
- "statusCode" INTEGER NOT NULL DEFAULT 301,
255
- "isRegex" BOOLEAN NOT NULL DEFAULT false,
256
- "notes" TEXT,
257
- "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
258
- "updatedAt" TIMESTAMP(3) NOT NULL,
259
-
260
- CONSTRAINT "actuate_redirects_pkey" PRIMARY KEY ("id")
261
- );
262
-
263
- -- CreateTable
264
- CREATE TABLE "actuate_form_submissions" (
265
- "id" TEXT NOT NULL,
266
- "formId" TEXT NOT NULL,
267
- "data" JSONB NOT NULL,
268
- "attribution" JSONB,
269
- "status" TEXT NOT NULL DEFAULT 'new',
270
- "submittedAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
271
- "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
272
-
273
- CONSTRAINT "actuate_form_submissions_pkey" PRIMARY KEY ("id")
274
- );
275
-
276
- -- CreateTable
277
- CREATE TABLE "actuate_backup_records" (
278
- "id" TEXT NOT NULL,
279
- "filename" TEXT NOT NULL,
280
- "storageKey" TEXT NOT NULL,
281
- "sizeBytes" INTEGER NOT NULL,
282
- "type" TEXT NOT NULL,
283
- "metadata" JSONB,
284
- "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
285
-
286
- CONSTRAINT "actuate_backup_records_pkey" PRIMARY KEY ("id")
287
- );
288
-
289
- -- CreateIndex
290
- CREATE UNIQUE INDEX "actuate_users_email_key" ON "actuate_users"("email");
291
-
292
- -- CreateIndex
293
- CREATE UNIQUE INDEX "actuate_oauth_accounts_provider_providerAccountId_key" ON "actuate_oauth_accounts"("provider", "providerAccountId");
294
-
295
- -- CreateIndex
296
- CREATE UNIQUE INDEX "actuate_sessions_token_key" ON "actuate_sessions"("token");
297
-
298
- -- CreateIndex
299
- CREATE UNIQUE INDEX "actuate_api_keys_keyHash_key" ON "actuate_api_keys"("keyHash");
300
-
301
- -- CreateIndex
302
- CREATE INDEX "actuate_audit_logs_event_idx" ON "actuate_audit_logs"("event");
303
-
304
- -- CreateIndex
305
- CREATE INDEX "actuate_audit_logs_userId_idx" ON "actuate_audit_logs"("userId");
306
-
307
- -- CreateIndex
308
- CREATE INDEX "actuate_audit_logs_timestamp_idx" ON "actuate_audit_logs"("timestamp");
309
-
310
- -- CreateIndex
311
- CREATE INDEX "actuate_documents_collection_idx" ON "actuate_documents"("collection");
312
-
313
- -- CreateIndex
314
- CREATE INDEX "actuate_documents_status_idx" ON "actuate_documents"("status");
315
-
316
- -- CreateIndex
317
- CREATE INDEX "actuate_documents_deletedAt_idx" ON "actuate_documents"("deletedAt");
318
-
319
- -- CreateIndex
320
- CREATE INDEX "actuate_documents_publishedAt_idx" ON "actuate_documents"("publishedAt");
321
-
322
- -- CreateIndex
323
- CREATE UNIQUE INDEX "actuate_media_storageKey_key" ON "actuate_media"("storageKey");
324
-
325
- -- CreateIndex
326
- CREATE UNIQUE INDEX "actuate_sites_domain_key" ON "actuate_sites"("domain");
327
-
328
- -- CreateIndex
329
- CREATE UNIQUE INDEX "actuate_workflow_states_documentId_key" ON "actuate_workflow_states"("documentId");
330
-
331
- -- CreateIndex
332
- CREATE UNIQUE INDEX "actuate_redirects_source_key" ON "actuate_redirects"("source");
333
-
334
- -- CreateIndex
335
- CREATE INDEX "actuate_form_submissions_formId_idx" ON "actuate_form_submissions"("formId");
336
-
337
- -- CreateIndex
338
- CREATE INDEX "actuate_form_submissions_status_idx" ON "actuate_form_submissions"("status");
339
-
340
- -- AddForeignKey
341
- ALTER TABLE "actuate_oauth_accounts" ADD CONSTRAINT "actuate_oauth_accounts_userId_fkey" FOREIGN KEY ("userId") REFERENCES "actuate_users"("id") ON DELETE CASCADE ON UPDATE CASCADE;
342
-
343
- -- AddForeignKey
344
- ALTER TABLE "actuate_sessions" ADD CONSTRAINT "actuate_sessions_userId_fkey" FOREIGN KEY ("userId") REFERENCES "actuate_users"("id") ON DELETE CASCADE ON UPDATE CASCADE;
345
-
346
- -- AddForeignKey
347
- ALTER TABLE "actuate_api_keys" ADD CONSTRAINT "actuate_api_keys_userId_fkey" FOREIGN KEY ("userId") REFERENCES "actuate_users"("id") ON DELETE CASCADE ON UPDATE CASCADE;
348
-
349
- -- AddForeignKey
350
- ALTER TABLE "actuate_documents" ADD CONSTRAINT "actuate_documents_createdById_fkey" FOREIGN KEY ("createdById") REFERENCES "actuate_users"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
351
-
352
- -- AddForeignKey
353
- ALTER TABLE "actuate_documents" ADD CONSTRAINT "actuate_documents_updatedById_fkey" FOREIGN KEY ("updatedById") REFERENCES "actuate_users"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
354
-
355
- -- AddForeignKey
356
- ALTER TABLE "actuate_versions" ADD CONSTRAINT "actuate_versions_documentId_fkey" FOREIGN KEY ("documentId") REFERENCES "actuate_documents"("id") ON DELETE CASCADE ON UPDATE CASCADE;
357
-
358
- -- AddForeignKey
359
- ALTER TABLE "actuate_versions" ADD CONSTRAINT "actuate_versions_changedById_fkey" FOREIGN KEY ("changedById") REFERENCES "actuate_users"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
360
-
361
- -- AddForeignKey
362
- ALTER TABLE "actuate_media" ADD CONSTRAINT "actuate_media_uploadedById_fkey" FOREIGN KEY ("uploadedById") REFERENCES "actuate_users"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
363
-
364
- -- AddForeignKey
365
- ALTER TABLE "actuate_media_usages" ADD CONSTRAINT "actuate_media_usages_mediaId_fkey" FOREIGN KEY ("mediaId") REFERENCES "actuate_media"("id") ON DELETE CASCADE ON UPDATE CASCADE;
366
-
367
- -- AddForeignKey
368
- ALTER TABLE "actuate_media_usages" ADD CONSTRAINT "actuate_media_usages_documentId_fkey" FOREIGN KEY ("documentId") REFERENCES "actuate_documents"("id") ON DELETE CASCADE ON UPDATE CASCADE;
369
-
370
- -- AddForeignKey
371
- ALTER TABLE "actuate_content_locks" ADD CONSTRAINT "actuate_content_locks_documentId_fkey" FOREIGN KEY ("documentId") REFERENCES "actuate_documents"("id") ON DELETE CASCADE ON UPDATE CASCADE;
372
-
373
- -- AddForeignKey
374
- ALTER TABLE "actuate_content_locks" ADD CONSTRAINT "actuate_content_locks_userId_fkey" FOREIGN KEY ("userId") REFERENCES "actuate_users"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
375
-
376
- -- AddForeignKey
377
- ALTER TABLE "actuate_notifications" ADD CONSTRAINT "actuate_notifications_userId_fkey" FOREIGN KEY ("userId") REFERENCES "actuate_users"("id") ON DELETE CASCADE ON UPDATE CASCADE;
378
-
379
- -- AddForeignKey
380
- ALTER TABLE "actuate_content_templates" ADD CONSTRAINT "actuate_content_templates_createdById_fkey" FOREIGN KEY ("createdById") REFERENCES "actuate_users"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
381
-
382
- -- AddForeignKey
383
- ALTER TABLE "actuate_workflow_states" ADD CONSTRAINT "actuate_workflow_states_assignedToId_fkey" FOREIGN KEY ("assignedToId") REFERENCES "actuate_users"("id") ON DELETE SET NULL ON UPDATE CASCADE;
384
-
1
+ -- CreateSchema
2
+ CREATE SCHEMA IF NOT EXISTS "public";
3
+
4
+ -- CreateEnum
5
+ CREATE TYPE "DocumentStatus" AS ENUM ('DRAFT', 'PUBLISHED', 'ARCHIVED', 'SCHEDULED', 'SCHEDULED_UNPUBLISH');
6
+
7
+ -- CreateEnum
8
+ CREATE TYPE "UserRole" AS ENUM ('ADMIN', 'EDITOR', 'AUTHOR', 'CLIENT');
9
+
10
+ -- CreateEnum
11
+ CREATE TYPE "ChangeType" AS ENUM ('CREATE', 'UPDATE', 'PUBLISH', 'RESTORE');
12
+
13
+ -- CreateEnum
14
+ CREATE TYPE "AuditEvent" AS ENUM ('login_success', 'login_failed', 'logout', 'password_change', 'password_reset_request', 'password_reset_complete', 'totp_enabled', 'totp_disabled', 'api_key_created', 'api_key_revoked', 'document_created', 'document_updated', 'document_published', 'document_deleted', 'media_uploaded', 'media_deleted', 'user_created', 'user_updated', 'user_deactivated', 'settings_changed', 'export_requested', 'import_completed');
15
+
16
+ -- CreateEnum
17
+ CREATE TYPE "NotificationType" AS ENUM ('DOCUMENT_PUBLISHED', 'DOCUMENT_ASSIGNED', 'REVIEW_REQUESTED', 'REVIEW_APPROVED', 'COMMENT_ADDED', 'SYSTEM_ALERT', 'WORKFLOW_STEP');
18
+
19
+ -- CreateEnum
20
+ CREATE TYPE "OrderStatus" AS ENUM ('PENDING', 'CONFIRMED', 'PROCESSING', 'SHIPPED', 'DELIVERED', 'CANCELLED', 'REFUNDED');
21
+
22
+ -- CreateEnum
23
+ CREATE TYPE "PaymentStatus" AS ENUM ('PENDING', 'AUTHORIZED', 'CAPTURED', 'FAILED', 'REFUNDED', 'PARTIALLY_REFUNDED');
24
+
25
+ -- CreateEnum
26
+ CREATE TYPE "DiscountType" AS ENUM ('PERCENTAGE', 'FIXED_AMOUNT', 'FREE_SHIPPING');
27
+
28
+ -- CreateEnum
29
+ CREATE TYPE "ProductType" AS ENUM ('PHYSICAL', 'DIGITAL', 'SUBSCRIPTION', 'BUNDLE');
30
+
31
+ -- CreateTable
32
+ CREATE TABLE "actuate_users" (
33
+ "id" TEXT NOT NULL,
34
+ "email" TEXT NOT NULL,
35
+ "name" TEXT NOT NULL,
36
+ "avatarUrl" TEXT,
37
+ "role" "UserRole" NOT NULL DEFAULT 'AUTHOR',
38
+ "passwordHash" TEXT,
39
+ "totpSecret" TEXT,
40
+ "authProvider" TEXT,
41
+ "isActive" BOOLEAN NOT NULL DEFAULT true,
42
+ "isApproved" BOOLEAN NOT NULL DEFAULT false,
43
+ "emailVerified" BOOLEAN NOT NULL DEFAULT false,
44
+ "lastLoginAt" TIMESTAMP(3),
45
+ "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
46
+ "updatedAt" TIMESTAMP(3) NOT NULL,
47
+
48
+ CONSTRAINT "actuate_users_pkey" PRIMARY KEY ("id")
49
+ );
50
+
51
+ -- CreateTable
52
+ CREATE TABLE "actuate_oauth_accounts" (
53
+ "id" TEXT NOT NULL,
54
+ "userId" TEXT NOT NULL,
55
+ "provider" TEXT NOT NULL,
56
+ "providerAccountId" TEXT NOT NULL,
57
+ "accessToken" TEXT,
58
+ "refreshToken" TEXT,
59
+ "expiresAt" TIMESTAMP(3),
60
+ "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
61
+
62
+ CONSTRAINT "actuate_oauth_accounts_pkey" PRIMARY KEY ("id")
63
+ );
64
+
65
+ -- CreateTable
66
+ CREATE TABLE "actuate_sessions" (
67
+ "id" TEXT NOT NULL,
68
+ "userId" TEXT NOT NULL,
69
+ "token" TEXT NOT NULL,
70
+ "expiresAt" TIMESTAMP(3) NOT NULL,
71
+ "revokedAt" TIMESTAMP(3),
72
+ "ipAddress" TEXT,
73
+ "userAgent" TEXT,
74
+ "fingerprintHash" TEXT,
75
+ "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
76
+
77
+ CONSTRAINT "actuate_sessions_pkey" PRIMARY KEY ("id")
78
+ );
79
+
80
+ -- CreateTable
81
+ CREATE TABLE "actuate_api_keys" (
82
+ "id" TEXT NOT NULL,
83
+ "name" TEXT NOT NULL,
84
+ "keyHash" TEXT NOT NULL,
85
+ "keyPrefix" TEXT NOT NULL,
86
+ "userId" TEXT NOT NULL,
87
+ "scopes" JSONB NOT NULL,
88
+ "ipRestrictions" JSONB,
89
+ "expiresAt" TIMESTAMP(3),
90
+ "lastUsedAt" TIMESTAMP(3),
91
+ "revokedAt" TIMESTAMP(3),
92
+ "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
93
+
94
+ CONSTRAINT "actuate_api_keys_pkey" PRIMARY KEY ("id")
95
+ );
96
+
97
+ -- CreateTable
98
+ CREATE TABLE "actuate_audit_logs" (
99
+ "id" TEXT NOT NULL,
100
+ "event" TEXT NOT NULL,
101
+ "userId" TEXT,
102
+ "ipAddress" TEXT,
103
+ "userAgent" TEXT,
104
+ "details" JSONB,
105
+ "timestamp" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
106
+
107
+ CONSTRAINT "actuate_audit_logs_pkey" PRIMARY KEY ("id")
108
+ );
109
+
110
+ -- CreateTable
111
+ CREATE TABLE "actuate_documents" (
112
+ "id" TEXT NOT NULL,
113
+ "collection" TEXT NOT NULL,
114
+ "data" JSONB NOT NULL,
115
+ "status" "DocumentStatus" NOT NULL DEFAULT 'DRAFT',
116
+ "locale" TEXT,
117
+ "localeGroupId" TEXT,
118
+ "createdById" TEXT NOT NULL,
119
+ "updatedById" TEXT NOT NULL,
120
+ "publishedAt" TIMESTAMP(3),
121
+ "scheduledAt" TIMESTAMP(3),
122
+ "scheduledUnpublishAt" TIMESTAMP(3),
123
+ "deletedAt" TIMESTAMP(3),
124
+ "searchVector" TEXT,
125
+ "plainText" TEXT,
126
+ "contentHash" TEXT,
127
+ "structuredData" JSONB,
128
+ "contentGraph" JSONB,
129
+ "siteId" TEXT,
130
+ "templateId" TEXT,
131
+ "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
132
+ "updatedAt" TIMESTAMP(3) NOT NULL,
133
+
134
+ CONSTRAINT "actuate_documents_pkey" PRIMARY KEY ("id")
135
+ );
136
+
137
+ -- CreateTable
138
+ CREATE TABLE "actuate_versions" (
139
+ "id" TEXT NOT NULL,
140
+ "documentId" TEXT NOT NULL,
141
+ "data" JSONB NOT NULL,
142
+ "changedById" TEXT NOT NULL,
143
+ "changeType" "ChangeType" NOT NULL,
144
+ "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
145
+
146
+ CONSTRAINT "actuate_versions_pkey" PRIMARY KEY ("id")
147
+ );
148
+
149
+ -- CreateTable
150
+ CREATE TABLE "actuate_media" (
151
+ "id" TEXT NOT NULL,
152
+ "filename" TEXT NOT NULL,
153
+ "storageKey" TEXT NOT NULL,
154
+ "mimeType" TEXT NOT NULL,
155
+ "fileSize" INTEGER NOT NULL,
156
+ "width" INTEGER,
157
+ "height" INTEGER,
158
+ "altText" TEXT,
159
+ "title" TEXT,
160
+ "uploadedById" TEXT NOT NULL,
161
+ "focalPointX" DOUBLE PRECISION,
162
+ "focalPointY" DOUBLE PRECISION,
163
+ "blurHash" TEXT,
164
+ "aiAltText" TEXT,
165
+ "aiTags" JSONB,
166
+ "aiDescription" TEXT,
167
+ "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
168
+ "updatedAt" TIMESTAMP(3) NOT NULL,
169
+
170
+ CONSTRAINT "actuate_media_pkey" PRIMARY KEY ("id")
171
+ );
172
+
173
+ -- CreateTable
174
+ CREATE TABLE "actuate_media_usages" (
175
+ "id" TEXT NOT NULL,
176
+ "mediaId" TEXT NOT NULL,
177
+ "documentId" TEXT NOT NULL,
178
+ "fieldName" TEXT NOT NULL,
179
+ "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
180
+
181
+ CONSTRAINT "actuate_media_usages_pkey" PRIMARY KEY ("id")
182
+ );
183
+
184
+ -- CreateTable
185
+ CREATE TABLE "actuate_content_locks" (
186
+ "id" TEXT NOT NULL,
187
+ "documentId" TEXT NOT NULL,
188
+ "userId" TEXT NOT NULL,
189
+ "lockedAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
190
+ "expiresAt" TIMESTAMP(3) NOT NULL,
191
+
192
+ CONSTRAINT "actuate_content_locks_pkey" PRIMARY KEY ("id")
193
+ );
194
+
195
+ -- CreateTable
196
+ CREATE TABLE "actuate_notifications" (
197
+ "id" TEXT NOT NULL,
198
+ "userId" TEXT NOT NULL,
199
+ "type" TEXT NOT NULL,
200
+ "title" TEXT NOT NULL,
201
+ "message" TEXT,
202
+ "link" TEXT,
203
+ "read" BOOLEAN NOT NULL DEFAULT false,
204
+ "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
205
+
206
+ CONSTRAINT "actuate_notifications_pkey" PRIMARY KEY ("id")
207
+ );
208
+
209
+ -- CreateTable
210
+ CREATE TABLE "actuate_content_templates" (
211
+ "id" TEXT NOT NULL,
212
+ "name" TEXT NOT NULL,
213
+ "collection" TEXT NOT NULL,
214
+ "templateData" JSONB NOT NULL,
215
+ "createdById" TEXT NOT NULL,
216
+ "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
217
+ "updatedAt" TIMESTAMP(3) NOT NULL,
218
+
219
+ CONSTRAINT "actuate_content_templates_pkey" PRIMARY KEY ("id")
220
+ );
221
+
222
+ -- CreateTable
223
+ CREATE TABLE "actuate_sites" (
224
+ "id" TEXT NOT NULL,
225
+ "domain" TEXT NOT NULL,
226
+ "name" TEXT NOT NULL,
227
+ "configOverrides" JSONB,
228
+ "isDefault" BOOLEAN NOT NULL DEFAULT false,
229
+ "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
230
+ "updatedAt" TIMESTAMP(3) NOT NULL,
231
+
232
+ CONSTRAINT "actuate_sites_pkey" PRIMARY KEY ("id")
233
+ );
234
+
235
+ -- CreateTable
236
+ CREATE TABLE "actuate_workflow_states" (
237
+ "id" TEXT NOT NULL,
238
+ "documentId" TEXT NOT NULL,
239
+ "currentStep" INTEGER NOT NULL DEFAULT 0,
240
+ "assignedToId" TEXT,
241
+ "status" TEXT NOT NULL DEFAULT 'pending',
242
+ "definition" JSONB NOT NULL,
243
+ "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
244
+ "updatedAt" TIMESTAMP(3) NOT NULL,
245
+
246
+ CONSTRAINT "actuate_workflow_states_pkey" PRIMARY KEY ("id")
247
+ );
248
+
249
+ -- CreateTable
250
+ CREATE TABLE "actuate_redirects" (
251
+ "id" TEXT NOT NULL,
252
+ "source" TEXT NOT NULL,
253
+ "destination" TEXT NOT NULL,
254
+ "statusCode" INTEGER NOT NULL DEFAULT 301,
255
+ "isRegex" BOOLEAN NOT NULL DEFAULT false,
256
+ "notes" TEXT,
257
+ "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
258
+ "updatedAt" TIMESTAMP(3) NOT NULL,
259
+
260
+ CONSTRAINT "actuate_redirects_pkey" PRIMARY KEY ("id")
261
+ );
262
+
263
+ -- CreateTable
264
+ CREATE TABLE "actuate_form_submissions" (
265
+ "id" TEXT NOT NULL,
266
+ "formId" TEXT NOT NULL,
267
+ "data" JSONB NOT NULL,
268
+ "attribution" JSONB,
269
+ "status" TEXT NOT NULL DEFAULT 'new',
270
+ "submittedAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
271
+ "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
272
+
273
+ CONSTRAINT "actuate_form_submissions_pkey" PRIMARY KEY ("id")
274
+ );
275
+
276
+ -- CreateTable
277
+ CREATE TABLE "actuate_backup_records" (
278
+ "id" TEXT NOT NULL,
279
+ "filename" TEXT NOT NULL,
280
+ "storageKey" TEXT NOT NULL,
281
+ "sizeBytes" INTEGER NOT NULL,
282
+ "type" TEXT NOT NULL,
283
+ "metadata" JSONB,
284
+ "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
285
+
286
+ CONSTRAINT "actuate_backup_records_pkey" PRIMARY KEY ("id")
287
+ );
288
+
289
+ -- CreateIndex
290
+ CREATE UNIQUE INDEX "actuate_users_email_key" ON "actuate_users"("email");
291
+
292
+ -- CreateIndex
293
+ CREATE UNIQUE INDEX "actuate_oauth_accounts_provider_providerAccountId_key" ON "actuate_oauth_accounts"("provider", "providerAccountId");
294
+
295
+ -- CreateIndex
296
+ CREATE UNIQUE INDEX "actuate_sessions_token_key" ON "actuate_sessions"("token");
297
+
298
+ -- CreateIndex
299
+ CREATE UNIQUE INDEX "actuate_api_keys_keyHash_key" ON "actuate_api_keys"("keyHash");
300
+
301
+ -- CreateIndex
302
+ CREATE INDEX "actuate_audit_logs_event_idx" ON "actuate_audit_logs"("event");
303
+
304
+ -- CreateIndex
305
+ CREATE INDEX "actuate_audit_logs_userId_idx" ON "actuate_audit_logs"("userId");
306
+
307
+ -- CreateIndex
308
+ CREATE INDEX "actuate_audit_logs_timestamp_idx" ON "actuate_audit_logs"("timestamp");
309
+
310
+ -- CreateIndex
311
+ CREATE INDEX "actuate_documents_collection_idx" ON "actuate_documents"("collection");
312
+
313
+ -- CreateIndex
314
+ CREATE INDEX "actuate_documents_status_idx" ON "actuate_documents"("status");
315
+
316
+ -- CreateIndex
317
+ CREATE INDEX "actuate_documents_deletedAt_idx" ON "actuate_documents"("deletedAt");
318
+
319
+ -- CreateIndex
320
+ CREATE INDEX "actuate_documents_publishedAt_idx" ON "actuate_documents"("publishedAt");
321
+
322
+ -- CreateIndex
323
+ CREATE UNIQUE INDEX "actuate_media_storageKey_key" ON "actuate_media"("storageKey");
324
+
325
+ -- CreateIndex
326
+ CREATE UNIQUE INDEX "actuate_sites_domain_key" ON "actuate_sites"("domain");
327
+
328
+ -- CreateIndex
329
+ CREATE UNIQUE INDEX "actuate_workflow_states_documentId_key" ON "actuate_workflow_states"("documentId");
330
+
331
+ -- CreateIndex
332
+ CREATE UNIQUE INDEX "actuate_redirects_source_key" ON "actuate_redirects"("source");
333
+
334
+ -- CreateIndex
335
+ CREATE INDEX "actuate_form_submissions_formId_idx" ON "actuate_form_submissions"("formId");
336
+
337
+ -- CreateIndex
338
+ CREATE INDEX "actuate_form_submissions_status_idx" ON "actuate_form_submissions"("status");
339
+
340
+ -- AddForeignKey
341
+ ALTER TABLE "actuate_oauth_accounts" ADD CONSTRAINT "actuate_oauth_accounts_userId_fkey" FOREIGN KEY ("userId") REFERENCES "actuate_users"("id") ON DELETE CASCADE ON UPDATE CASCADE;
342
+
343
+ -- AddForeignKey
344
+ ALTER TABLE "actuate_sessions" ADD CONSTRAINT "actuate_sessions_userId_fkey" FOREIGN KEY ("userId") REFERENCES "actuate_users"("id") ON DELETE CASCADE ON UPDATE CASCADE;
345
+
346
+ -- AddForeignKey
347
+ ALTER TABLE "actuate_api_keys" ADD CONSTRAINT "actuate_api_keys_userId_fkey" FOREIGN KEY ("userId") REFERENCES "actuate_users"("id") ON DELETE CASCADE ON UPDATE CASCADE;
348
+
349
+ -- AddForeignKey
350
+ ALTER TABLE "actuate_documents" ADD CONSTRAINT "actuate_documents_createdById_fkey" FOREIGN KEY ("createdById") REFERENCES "actuate_users"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
351
+
352
+ -- AddForeignKey
353
+ ALTER TABLE "actuate_documents" ADD CONSTRAINT "actuate_documents_updatedById_fkey" FOREIGN KEY ("updatedById") REFERENCES "actuate_users"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
354
+
355
+ -- AddForeignKey
356
+ ALTER TABLE "actuate_versions" ADD CONSTRAINT "actuate_versions_documentId_fkey" FOREIGN KEY ("documentId") REFERENCES "actuate_documents"("id") ON DELETE CASCADE ON UPDATE CASCADE;
357
+
358
+ -- AddForeignKey
359
+ ALTER TABLE "actuate_versions" ADD CONSTRAINT "actuate_versions_changedById_fkey" FOREIGN KEY ("changedById") REFERENCES "actuate_users"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
360
+
361
+ -- AddForeignKey
362
+ ALTER TABLE "actuate_media" ADD CONSTRAINT "actuate_media_uploadedById_fkey" FOREIGN KEY ("uploadedById") REFERENCES "actuate_users"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
363
+
364
+ -- AddForeignKey
365
+ ALTER TABLE "actuate_media_usages" ADD CONSTRAINT "actuate_media_usages_mediaId_fkey" FOREIGN KEY ("mediaId") REFERENCES "actuate_media"("id") ON DELETE CASCADE ON UPDATE CASCADE;
366
+
367
+ -- AddForeignKey
368
+ ALTER TABLE "actuate_media_usages" ADD CONSTRAINT "actuate_media_usages_documentId_fkey" FOREIGN KEY ("documentId") REFERENCES "actuate_documents"("id") ON DELETE CASCADE ON UPDATE CASCADE;
369
+
370
+ -- AddForeignKey
371
+ ALTER TABLE "actuate_content_locks" ADD CONSTRAINT "actuate_content_locks_documentId_fkey" FOREIGN KEY ("documentId") REFERENCES "actuate_documents"("id") ON DELETE CASCADE ON UPDATE CASCADE;
372
+
373
+ -- AddForeignKey
374
+ ALTER TABLE "actuate_content_locks" ADD CONSTRAINT "actuate_content_locks_userId_fkey" FOREIGN KEY ("userId") REFERENCES "actuate_users"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
375
+
376
+ -- AddForeignKey
377
+ ALTER TABLE "actuate_notifications" ADD CONSTRAINT "actuate_notifications_userId_fkey" FOREIGN KEY ("userId") REFERENCES "actuate_users"("id") ON DELETE CASCADE ON UPDATE CASCADE;
378
+
379
+ -- AddForeignKey
380
+ ALTER TABLE "actuate_content_templates" ADD CONSTRAINT "actuate_content_templates_createdById_fkey" FOREIGN KEY ("createdById") REFERENCES "actuate_users"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
381
+
382
+ -- AddForeignKey
383
+ ALTER TABLE "actuate_workflow_states" ADD CONSTRAINT "actuate_workflow_states_assignedToId_fkey" FOREIGN KEY ("assignedToId") REFERENCES "actuate_users"("id") ON DELETE SET NULL ON UPDATE CASCADE;
384
+