1-- CreateEnum 2CREATE TYPE "WorkspaceRole" AS ENUM ('OWNER', 'ADMIN', 'MEMBER', 'GUEST'); 3 4-- CreateEnum 5CREATE TYPE "PermissionLevel" AS ENUM ('NONE', 'VIEW', 'COMMENT', 'EDIT', 'FULL_ACCESS'); 6 7-- CreateEnum 8CREATE TYPE "ShareScope" AS ENUM ('PRIVATE', 'WORKSPACE', 'TEAM', 'USERS', 'PUBLIC'); 9 10-- CreateEnum 11CREATE TYPE "BlockType" AS ENUM ('PARAGRAPH', 'HEADING_1', 'HEADING_2', 'HEADING_3', 'QUOTE', 'CALLOUT', 'BULLETED_LIST', 'NUMBERED_LIST', 'TODO', 'TOGGLE', 'IMAGE', 'VIDEO', 'AUDIO', 'FILE', 'BOOKMARK', 'EMBED', 'CODE', 'EQUATION', 'COLUMN', 'COLUMN_LIST', 'DIVIDER', 'SPACER', 'DATABASE', 'LINKED_DATABASE', 'TABLE', 'CHART', 'FORM', 'SYNCED_BLOCK', 'CHILD_PAGE', 'CHILD_DATABASE'); 12 13-- CreateEnum 14CREATE TYPE "PropertyType" AS ENUM ('TITLE', 'TEXT', 'RICH_TEXT', 'NUMBER', 'SELECT', 'MULTI_SELECT', 'STATUS', 'DATE', 'DATE_RANGE', 'PERSON', 'EMAIL', 'PHONE', 'URL', 'CHECKBOX', 'FILES', 'CREATED_TIME', 'CREATED_BY', 'LAST_EDITED_TIME', 'LAST_EDITED_BY', 'RELATION', 'ROLLUP', 'FORMULA', 'BUTTON', 'UNIQUE_ID'); 15 16-- CreateEnum 17CREATE TYPE "ViewType" AS ENUM ('TABLE', 'LIST', 'BOARD', 'GALLERY', 'CALENDAR', 'TIMELINE', 'CHART', 'DASHBOARD', 'FORM'); 18 19-- CreateEnum 20CREATE TYPE "RelationCardinality" AS ENUM ('ONE_TO_ONE', 'ONE_TO_MANY', 'MANY_TO_MANY'); 21 22-- CreateEnum 23CREATE TYPE "RollupAggregate" AS ENUM ('COUNT', 'SUM', 'AVERAGE', 'MIN', 'MAX', 'PERCENT', 'UNIQUE'); 24 25-- CreateEnum 26CREATE TYPE "AutomationTriggerType" AS ENUM ('RECORD_CREATED', 'RECORD_UPDATED', 'PROPERTY_CHANGED', 'PAGE_CREATED', 'FORM_SUBMITTED', 'SCHEDULE', 'WEBHOOK', 'MANUAL'); 27 28-- CreateEnum 29CREATE TYPE "AutomationActionType" AS ENUM ('UPDATE_RECORD', 'CREATE_PAGE', 'SEND_EMAIL', 'SEND_WEBHOOK', 'CREATE_NOTIFICATION', 'ASSIGN_USER', 'CHANGE_STATUS', 'CALL_INTEGRATION', 'RUN_AI_ACTION'); 30 31-- CreateEnum 32CREATE TYPE "AutomationStatus" AS ENUM ('DRAFT', 'ACTIVE', 'PAUSED', 'ARCHIVED'); 33 34-- CreateEnum 35CREATE TYPE "AutomationRunStatus" AS ENUM ('PENDING', 'RUNNING', 'SUCCEEDED', 'FAILED', 'DEAD_LETTER'); 36 37-- CreateEnum 38CREATE TYPE "NotificationChannel" AS ENUM ('IN_APP', 'EMAIL', 'WEBHOOK'); 39 40-- CreateEnum 41CREATE TYPE "NotificationType" AS ENUM ('MENTION', 'COMMENT', 'ASSIGNMENT', 'PAGE_SHARED', 'TASK_ASSIGNED', 'DATABASE_CHANGE', 'AUTOMATION', 'INTEGRATION'); 42 43-- CreateEnum 44CREATE TYPE "FileStatus" AS ENUM ('UPLOADING', 'SCANNING', 'READY', 'VIRUS_DETECTED', 'FAILED'); 45 46-- CreateEnum 47CREATE TYPE "FormQuestionType" AS ENUM ('SHORT_TEXT', 'LONG_TEXT', 'NUMBER', 'EMAIL', 'DATE', 'CHECKBOX', 'SINGLE_SELECT', 'MULTI_SELECT', 'RATING', 'FILE'); 48 49-- CreateEnum 50CREATE TYPE "FormStatus" AS ENUM ('DRAFT', 'PUBLISHED', 'CLOSED'); 51 52-- CreateEnum 53CREATE TYPE "AuditActorType" AS ENUM ('USER', 'API_KEY', 'SYSTEM', 'INTEGRATION'); 54 55-- CreateEnum 56CREATE TYPE "ApiKeyScope" AS ENUM ('READ', 'WRITE', 'ADMIN'); 57 58-- CreateEnum 59CREATE TYPE "WebhookDeliveryStatus" AS ENUM ('PENDING', 'DELIVERED', 'FAILED', 'REJECTED'); 60 61-- CreateEnum 62CREATE TYPE "UserStatus" AS ENUM ('ACTIVE', 'INVITED', 'SUSPENDED'); 63 64-- CreateEnum 65CREATE TYPE "InvitationStatus" AS ENUM ('PENDING', 'ACCEPTED', 'DECLINED', 'REVOKED', 'EXPIRED'); 66 67-- CreateEnum 68CREATE TYPE "SessionStatus" AS ENUM ('ACTIVE', 'REVOKED', 'EXPIRED'); 69 70-- CreateEnum 71CREATE TYPE "EmailVerificationStatus" AS ENUM ('UNVERIFIED', 'PENDING', 'VERIFIED'); 72 73-- CreateEnum 74CREATE TYPE "PasswordResetStatus" AS ENUM ('PENDING', 'USED', 'EXPIRED', 'REVOKED'); 75 76-- CreateEnum 77CREATE TYPE "SSOProviderType" AS ENUM ('SAML', 'OIDC'); 78 79-- CreateEnum 80CREATE TYPE "RetentionPolicyType" AS ENUM ('PURGE', 'HOLD'); 81 82-- CreateTable 83CREATE TABLE "users" ( 84 "id" TEXT NOT NULL, 85 "email" TEXT NOT NULL, 86 "emailVerifiedAt" TIMESTAMP(3), 87 "emailVerification" "EmailVerificationStatus" NOT NULL DEFAULT 'UNVERIFIED', 88 "passwordHash" TEXT, 89 "name" TEXT NOT NULL, 90 "displayName" TEXT, 91 "avatarUrl" TEXT, 92 "status" "UserStatus" NOT NULL DEFAULT 'ACTIVE', 93 "locale" TEXT NOT NULL DEFAULT 'en-US', 94 "timezone" TEXT NOT NULL DEFAULT 'UTC', 95 "theme" TEXT NOT NULL DEFAULT 'system', 96 "notificationPrefs" JSONB NOT NULL DEFAULT '{}', 97 "lastLoginAt" TIMESTAMP(3), 98 "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, 99 "updatedAt" TIMESTAMP(3) NOT NULL, 100 101 CONSTRAINT "users_pkey" PRIMARY KEY ("id") 102); 103 104-- CreateTable 105CREATE TABLE "refresh_tokens" ( 106 "id" TEXT NOT NULL, 107 "tokenHash" TEXT NOT NULL, 108 "userId" TEXT NOT NULL, 109 "sessionAgent" TEXT, 110 "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, 111 "expiresAt" TIMESTAMP(3) NOT NULL, 112 "revokedAt" TIMESTAMP(3), 113 "replacedBy" TEXT, 114 115 CONSTRAINT "refresh_tokens_pkey" PRIMARY KEY ("id") 116); 117 118-- CreateTable 119CREATE TABLE "sessions" ( 120 "id" TEXT NOT NULL, 121 "userId" TEXT NOT NULL, 122 "tokenHash" TEXT NOT NULL, 123 "userAgent" TEXT, 124 "ipAddress" TEXT, 125 "status" "SessionStatus" NOT NULL DEFAULT 'ACTIVE', 126 "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, 127 "expiresAt" TIMESTAMP(3) NOT NULL, 128 "revokedAt" TIMESTAMP(3), 129 130 CONSTRAINT "sessions_pkey" PRIMARY KEY ("id") 131); 132 133-- CreateTable 134CREATE TABLE "email_verifications" ( 135 "id" TEXT NOT NULL, 136 "userId" TEXT NOT NULL, 137 "tokenHash" TEXT NOT NULL, 138 "expiresAt" TIMESTAMP(3) NOT NULL, 139 "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, 140 141 CONSTRAINT "email_verifications_pkey" PRIMARY KEY ("id") 142); 143 144-- CreateTable 145CREATE TABLE "password_resets" ( 146 "id" TEXT NOT NULL, 147 "userId" TEXT NOT NULL, 148 "tokenHash" TEXT NOT NULL, 149 "status" "PasswordResetStatus" NOT NULL DEFAULT 'PENDING', 150 "expiresAt" TIMESTAMP(3) NOT NULL, 151 "usedAt" TIMESTAMP(3), 152 "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, 153 154 CONSTRAINT "password_resets_pkey" PRIMARY KEY ("id") 155); 156 157-- CreateTable 158CREATE TABLE "organizations" ( 159 "id" TEXT NOT NULL, 160 "name" TEXT NOT NULL, 161 "slug" TEXT NOT NULL, 162 "logoUrl" TEXT, 163 "ownerId" TEXT NOT NULL, 164 "policy" JSONB NOT NULL DEFAULT '{}', 165 "ssoConfig" JSONB, 166 "scimConfig" JSONB, 167 "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, 168 "updatedAt" TIMESTAMP(3) NOT NULL, 169 170 CONSTRAINT "organizations_pkey" PRIMARY KEY ("id") 171); 172 173-- CreateTable 174CREATE TABLE "organization_members" ( 175 "id" TEXT NOT NULL, 176 "organizationId" TEXT NOT NULL, 177 "userId" TEXT NOT NULL, 178 "role" "WorkspaceRole" NOT NULL DEFAULT 'MEMBER', 179 "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, 180 181 CONSTRAINT "organization_members_pkey" PRIMARY KEY ("id") 182); 183 184-- CreateTable 185CREATE TABLE "sso_providers" ( 186 "id" TEXT NOT NULL, 187 "organizationId" TEXT NOT NULL, 188 "type" "SSOProviderType" NOT NULL, 189 "name" TEXT NOT NULL, 190 "config" JSONB NOT NULL, 191 "enforce" BOOLEAN NOT NULL DEFAULT false, 192 "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, 193 "updatedAt" TIMESTAMP(3) NOT NULL, 194 195 CONSTRAINT "sso_providers_pkey" PRIMARY KEY ("id") 196); 197 198-- CreateTable 199CREATE TABLE "sso_identities" ( 200 "id" TEXT NOT NULL, 201 "providerId" TEXT NOT NULL, 202 "externalId" TEXT NOT NULL, 203 "userId" TEXT NOT NULL, 204 "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, 205 206 CONSTRAINT "sso_identities_pkey" PRIMARY KEY ("id") 207); 208 209-- CreateTable 210CREATE TABLE "retention_policies" ( 211 "id" TEXT NOT NULL, 212 "organizationId" TEXT NOT NULL, 213 "type" "RetentionPolicyType" NOT NULL, 214 "scope" TEXT NOT NULL, 215 "retainDays" INTEGER, 216 "config" JSONB NOT NULL DEFAULT '{}', 217 "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, 218 "updatedAt" TIMESTAMP(3) NOT NULL, 219 220 CONSTRAINT "retention_policies_pkey" PRIMARY KEY ("id") 221); 222 223-- CreateTable 224CREATE TABLE "workspaces" ( 225 "id" TEXT NOT NULL, 226 "organizationId" TEXT, 227 "name" TEXT NOT NULL, 228 "slug" TEXT NOT NULL, 229 "iconUrl" TEXT, 230 "logoUrl" TEXT, 231 "description" TEXT, 232 "publicUrl" TEXT, 233 "settings" JSONB NOT NULL DEFAULT '{}', 234 "isPersonal" BOOLEAN NOT NULL DEFAULT false, 235 "ownerId" TEXT, 236 "billingPlan" TEXT NOT NULL DEFAULT 'free', 237 "usageLimits" JSONB NOT NULL DEFAULT '{}', 238 "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, 239 "updatedAt" TIMESTAMP(3) NOT NULL, 240 "deletedAt" TIMESTAMP(3), 241 242 CONSTRAINT "workspaces_pkey" PRIMARY KEY ("id") 243); 244 245-- CreateTable 246CREATE TABLE "workspace_members" ( 247 "id" TEXT NOT NULL, 248 "workspaceId" TEXT NOT NULL, 249 "userId" TEXT NOT NULL, 250 "role" "WorkspaceRole" NOT NULL DEFAULT 'MEMBER', 251 "invitedBy" TEXT, 252 "joinedAt" TIMESTAMP(3), 253 "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, 254 "updatedAt" TIMESTAMP(3) NOT NULL, 255 256 CONSTRAINT "workspace_members_pkey" PRIMARY KEY ("id") 257); 258 259-- CreateTable 260CREATE TABLE "invitations" ( 261 "id" TEXT NOT NULL, 262 "workspaceId" TEXT NOT NULL, 263 "email" TEXT NOT NULL, 264 "role" "WorkspaceRole" NOT NULL DEFAULT 'MEMBER', 265 "invitedById" TEXT NOT NULL, 266 "tokenHash" TEXT NOT NULL, 267 "status" "InvitationStatus" NOT NULL DEFAULT 'PENDING', 268 "expiresAt" TIMESTAMP(3) NOT NULL, 269 "acceptedAt" TIMESTAMP(3), 270 "revokedAt" TIMESTAMP(3), 271 "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, 272 "updatedAt" TIMESTAMP(3) NOT NULL, 273 274 CONSTRAINT "invitations_pkey" PRIMARY KEY ("id") 275); 276 277-- CreateTable 278CREATE TABLE "teams" ( 279 "id" TEXT NOT NULL, 280 "workspaceId" TEXT NOT NULL, 281 "name" TEXT NOT NULL, 282 "slug" TEXT NOT NULL, 283 "description" TEXT, 284 "color" TEXT, 285 "iconUrl" TEXT, 286 "position" TEXT NOT NULL DEFAULT 'a0', 287 "isPrivate" BOOLEAN NOT NULL DEFAULT false, 288 "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, 289 "updatedAt" TIMESTAMP(3) NOT NULL, 290 291 CONSTRAINT "teams_pkey" PRIMARY KEY ("id") 292); 293 294-- CreateTable 295CREATE TABLE "team_members" ( 296 "id" TEXT NOT NULL, 297 "teamId" TEXT NOT NULL, 298 "workspaceMemberId" TEXT NOT NULL, 299 "userId" TEXT NOT NULL, 300 "role" "WorkspaceRole" NOT NULL DEFAULT 'MEMBER', 301 "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, 302 303 CONSTRAINT "team_members_pkey" PRIMARY KEY ("id") 304); 305 306-- CreateTable 307CREATE TABLE "pages" ( 308 "id" TEXT NOT NULL, 309 "workspaceId" TEXT NOT NULL, 310 "teamId" TEXT, 311 "parentId" TEXT, 312 "grandparentId" TEXT, 313 "position" TEXT NOT NULL DEFAULT 'a0', 314 "title" TEXT NOT NULL DEFAULT '', 315 "icon" TEXT, 316 "coverUrl" TEXT, 317 "description" TEXT, 318 "isPrivate" BOOLEAN NOT NULL DEFAULT false, 319 "isFavorite" BOOLEAN NOT NULL DEFAULT false, 320 "archivedAt" TIMESTAMP(3), 321 "deletedAt" TIMESTAMP(3), 322 "trashedAt" TIMESTAMP(3), 323 "restoredAt" TIMESTAMP(3), 324 "createdBy" TEXT, 325 "updatedBy" TEXT, 326 "version" INTEGER NOT NULL DEFAULT 1, 327 "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, 328 "updatedAt" TIMESTAMP(3) NOT NULL, 329 330 CONSTRAINT "pages_pkey" PRIMARY KEY ("id") 331); 332 333-- CreateTable 334CREATE TABLE "page_favorites" ( 335 "id" TEXT NOT NULL, 336 "workspaceId" TEXT NOT NULL, 337 "userId" TEXT NOT NULL, 338 "pageId" TEXT NOT NULL, 339 "position" TEXT NOT NULL DEFAULT 'a0', 340 "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, 341 342 CONSTRAINT "page_favorites_pkey" PRIMARY KEY ("id") 343); 344 345-- CreateTable 346CREATE TABLE "page_versions" ( 347 "id" TEXT NOT NULL, 348 "pageId" TEXT NOT NULL, 349 "version" INTEGER NOT NULL, 350 "snapshot" JSONB NOT NULL, 351 "createdBy" TEXT, 352 "note" TEXT, 353 "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, 354 355 CONSTRAINT "page_versions_pkey" PRIMARY KEY ("id") 356); 357 358-- CreateTable 359CREATE TABLE "blocks" ( 360 "id" TEXT NOT NULL, 361 "pageId" TEXT NOT NULL, 362 "workspaceId" TEXT NOT NULL, 363 "parentId" TEXT, 364 "type" "BlockType" NOT NULL, 365 "position" TEXT NOT NULL DEFAULT 'a0', 366 "content" JSONB NOT NULL DEFAULT '{}', 367 "properties" JSONB NOT NULL DEFAULT '{}', 368 "isSynced" BOOLEAN NOT NULL DEFAULT false, 369 "syncedSourceId" TEXT, 370 "createdBy" TEXT, 371 "updatedBy" TEXT, 372 "deletedAt" TIMESTAMP(3), 373 "version" INTEGER NOT NULL DEFAULT 1, 374 "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, 375 "updatedAt" TIMESTAMP(3) NOT NULL, 376 377 CONSTRAINT "blocks_pkey" PRIMARY KEY ("id") 378); 379 380-- CreateTable 381CREATE TABLE "block_versions" ( 382 "id" TEXT NOT NULL, 383 "blockId" TEXT NOT NULL, 384 "version" INTEGER NOT NULL, 385 "content" JSONB NOT NULL, 386 "properties" JSONB NOT NULL, 387 "createdBy" TEXT, 388 "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, 389 390 CONSTRAINT "block_versions_pkey" PRIMARY KEY ("id") 391); 392 393-- CreateTable 394CREATE TABLE "databases" ( 395 "id" TEXT NOT NULL, 396 "workspaceId" TEXT NOT NULL, 397 "pageId" TEXT, 398 "title" TEXT NOT NULL DEFAULT '', 399 "icon" TEXT, 400 "description" TEXT, 401 "schemaVersion" INTEGER NOT NULL DEFAULT 1, 402 "isArchived" BOOLEAN NOT NULL DEFAULT false, 403 "createdBy" TEXT, 404 "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, 405 "updatedAt" TIMESTAMP(3) NOT NULL, 406 407 CONSTRAINT "databases_pkey" PRIMARY KEY ("id") 408); 409 410-- CreateTable 411CREATE TABLE "database_properties" ( 412 "id" TEXT NOT NULL, 413 "databaseId" TEXT NOT NULL, 414 "name" TEXT NOT NULL, 415 "type" "PropertyType" NOT NULL, 416 "position" TEXT NOT NULL DEFAULT 'a0', 417 "isTitle" BOOLEAN NOT NULL DEFAULT false, 418 "isVisible" BOOLEAN NOT NULL DEFAULT true, 419 "required" BOOLEAN NOT NULL DEFAULT false, 420 "config" JSONB NOT NULL DEFAULT '{}', 421 "default" JSONB, 422 "deletedAt" TIMESTAMP(3), 423 "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, 424 "updatedAt" TIMESTAMP(3) NOT NULL, 425 426 CONSTRAINT "database_properties_pkey" PRIMARY KEY ("id") 427); 428 429-- CreateTable 430CREATE TABLE "database_views" ( 431 "id" TEXT NOT NULL, 432 "databaseId" TEXT NOT NULL, 433 "name" TEXT NOT NULL, 434 "type" "ViewType" NOT NULL, 435 "position" TEXT NOT NULL DEFAULT 'a0', 436 "config" JSONB NOT NULL DEFAULT '{}', 437 "filter" JSONB, 438 "sort" JSONB, 439 "group" JSONB, 440 "pageSize" INTEGER, 441 "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, 442 "updatedAt" TIMESTAMP(3) NOT NULL, 443 444 CONSTRAINT "database_views_pkey" PRIMARY KEY ("id") 445); 446 447-- CreateTable 448CREATE TABLE "database_records" ( 449 "id" TEXT NOT NULL, 450 "workspaceId" TEXT NOT NULL, 451 "databaseId" TEXT NOT NULL, 452 "pageId" TEXT, 453 "coverUrl" TEXT, 454 "icon" TEXT, 455 "archivedAt" TIMESTAMP(3), 456 "isSubItem" BOOLEAN NOT NULL DEFAULT false, 457 "position" TEXT NOT NULL DEFAULT 'a0', 458 "version" INTEGER NOT NULL DEFAULT 1, 459 "createdBy" TEXT, 460 "createdTime" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, 461 "lastEditedBy" TEXT, 462 "lastEditedTime" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, 463 "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, 464 "updatedAt" TIMESTAMP(3) NOT NULL, 465 466 CONSTRAINT "database_records_pkey" PRIMARY KEY ("id") 467); 468 469-- CreateTable 470CREATE TABLE "record_properties" ( 471 "id" TEXT NOT NULL, 472 "recordId" TEXT NOT NULL, 473 "propertyId" TEXT NOT NULL, 474 "value" JSONB, 475 "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, 476 "updatedAt" TIMESTAMP(3) NOT NULL, 477 478 CONSTRAINT "record_properties_pkey" PRIMARY KEY ("id") 479); 480 481-- CreateTable 482CREATE TABLE "relations" ( 483 "id" TEXT NOT NULL, 484 "databaseId" TEXT NOT NULL, 485 "targetDatabaseId" TEXT NOT NULL, 486 "propertyId" TEXT, 487 "reversePropertyId" TEXT, 488 "name" TEXT NOT NULL, 489 "targetName" TEXT, 490 "cardinality" "RelationCardinality" NOT NULL DEFAULT 'MANY_TO_MANY', 491 "bidirectional" BOOLEAN NOT NULL DEFAULT true, 492 "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, 493 "updatedAt" TIMESTAMP(3) NOT NULL, 494 495 CONSTRAINT "relations_pkey" PRIMARY KEY ("id") 496); 497 498-- CreateTable 499CREATE TABLE "relation_links" ( 500 "id" TEXT NOT NULL, 501 "databaseId" TEXT NOT NULL, 502 "recordId" TEXT NOT NULL, 503 "targetRecordId" TEXT NOT NULL, 504 "targetDatabaseId" TEXT NOT NULL, 505 "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, 506 507 CONSTRAINT "relation_links_pkey" PRIMARY KEY ("id") 508); 509 510-- CreateTable 511CREATE TABLE "rollups" ( 512 "id" TEXT NOT NULL, 513 "databaseId" TEXT NOT NULL, 514 "propertyId" TEXT, 515 "relationId" TEXT NOT NULL, 516 "targetPropertyId" TEXT NOT NULL, 517 "aggregate" "RollupAggregate" NOT NULL, 518 "filter" JSONB, 519 "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, 520 "updatedAt" TIMESTAMP(3) NOT NULL, 521 522 CONSTRAINT "rollups_pkey" PRIMARY KEY ("id") 523); 524 525-- CreateTable 526CREATE TABLE "formulas" ( 527 "id" TEXT NOT NULL, 528 "databaseId" TEXT NOT NULL, 529 "propertyId" TEXT, 530 "expression" TEXT NOT NULL, 531 "ast" JSONB NOT NULL, 532 "returnType" TEXT NOT NULL, 533 "dependencies" TEXT[], 534 "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, 535 "updatedAt" TIMESTAMP(3) NOT NULL, 536 537 CONSTRAINT "formulas_pkey" PRIMARY KEY ("id") 538); 539 540-- CreateTable 541CREATE TABLE "database_buttons" ( 542 "id" TEXT NOT NULL, 543 "databaseId" TEXT NOT NULL, 544 "propertyId" TEXT, 545 "name" TEXT NOT NULL, 546 "icon" TEXT, 547 "color" TEXT, 548 "actions" JSONB NOT NULL, 549 "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, 550 "updatedAt" TIMESTAMP(3) NOT NULL, 551 552 CONSTRAINT "database_buttons_pkey" PRIMARY KEY ("id") 553); 554 555-- CreateTable 556CREATE TABLE "charts" ( 557 "id" TEXT NOT NULL, 558 "workspaceId" TEXT NOT NULL, 559 "databaseId" TEXT NOT NULL, 560 "name" TEXT NOT NULL, 561 "chartType" TEXT NOT NULL, 562 "config" JSONB NOT NULL, 563 "filter" JSONB, 564 "position" TEXT NOT NULL DEFAULT 'a0', 565 "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, 566 "updatedAt" TIMESTAMP(3) NOT NULL, 567 568 CONSTRAINT "charts_pkey" PRIMARY KEY ("id") 569); 570 571-- CreateTable 572CREATE TABLE "dashboards" ( 573 "id" TEXT NOT NULL, 574 "workspaceId" TEXT NOT NULL, 575 "name" TEXT NOT NULL, 576 "icon" TEXT, 577 "layout" JSONB NOT NULL DEFAULT '{}', 578 "isPublic" BOOLEAN NOT NULL DEFAULT false, 579 "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, 580 "updatedAt" TIMESTAMP(3) NOT NULL, 581 582 CONSTRAINT "dashboards_pkey" PRIMARY KEY ("id") 583); 584 585-- CreateTable 586CREATE TABLE "dashboard_widgets" ( 587 "id" TEXT NOT NULL, 588 "dashboardId" TEXT NOT NULL, 589 "widgetType" TEXT NOT NULL, 590 "sourceRef" JSONB, 591 "position" TEXT NOT NULL DEFAULT 'a0', 592 "layout" JSONB NOT NULL DEFAULT '{}', 593 "filter" JSONB, 594 "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, 595 "updatedAt" TIMESTAMP(3) NOT NULL, 596 597 CONSTRAINT "dashboard_widgets_pkey" PRIMARY KEY ("id") 598); 599 600-- CreateTable 601CREATE TABLE "comments" ( 602 "id" TEXT NOT NULL, 603 "workspaceId" TEXT NOT NULL, 604 "teamId" TEXT, 605 "pageId" TEXT, 606 "blockId" TEXT, 607 "recordId" TEXT, 608 "selection" JSONB, 609 "body" TEXT NOT NULL, 610 "mentionIds" TEXT[] DEFAULT ARRAY[]::TEXT[], 611 "pageMentionIds" TEXT[] DEFAULT ARRAY[]::TEXT[], 612 "resolvedAt" TIMESTAMP(3), 613 "resolvedBy" TEXT, 614 "status" TEXT NOT NULL DEFAULT 'open', 615 "createdBy" TEXT NOT NULL, 616 "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, 617 "updatedAt" TIMESTAMP(3) NOT NULL, 618 619 CONSTRAINT "comments_pkey" PRIMARY KEY ("id") 620); 621 622-- CreateTable 623CREATE TABLE "comment_replies" ( 624 "id" TEXT NOT NULL, 625 "commentId" TEXT NOT NULL, 626 "body" TEXT NOT NULL, 627 "mentionIds" TEXT[] DEFAULT ARRAY[]::TEXT[], 628 "createdBy" TEXT NOT NULL, 629 "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, 630 "updatedAt" TIMESTAMP(3) NOT NULL, 631 632 CONSTRAINT "comment_replies_pkey" PRIMARY KEY ("id") 633); 634 635-- CreateTable 636CREATE TABLE "comment_reactions" ( 637 "id" TEXT NOT NULL, 638 "emoji" TEXT NOT NULL, 639 "userId" TEXT NOT NULL, 640 "commentId" TEXT, 641 "replyId" TEXT, 642 "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, 643 644 CONSTRAINT "comment_reactions_pkey" PRIMARY KEY ("id") 645); 646 647-- CreateTable 648CREATE TABLE "notifications" ( 649 "id" TEXT NOT NULL, 650 "workspaceId" TEXT NOT NULL, 651 "userId" TEXT NOT NULL, 652 "type" "NotificationType" NOT NULL, 653 "channel" "NotificationChannel" NOT NULL DEFAULT 'IN_APP', 654 "title" TEXT NOT NULL, 655 "body" TEXT, 656 "link" JSONB, 657 "readAt" TIMESTAMP(3), 658 "actorId" TEXT, 659 "emailSentAt" TIMESTAMP(3), 660 "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, 661 662 CONSTRAINT "notifications_pkey" PRIMARY KEY ("id") 663); 664 665-- CreateTable 666CREATE TABLE "mention_notifications" ( 667 "id" TEXT NOT NULL, 668 "userId" TEXT NOT NULL, 669 "mentionerId" TEXT NOT NULL, 670 "targetType" TEXT NOT NULL, 671 "targetId" TEXT NOT NULL, 672 "context" JSONB, 673 "readAt" TIMESTAMP(3), 674 "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, 675 676 CONSTRAINT "mention_notifications_pkey" PRIMARY KEY ("id") 677); 678 679-- CreateTable 680CREATE TABLE "files" ( 681 "id" TEXT NOT NULL, 682 "workspaceId" TEXT NOT NULL, 683 "blockId" TEXT, 684 "pageId" TEXT, 685 "name" TEXT NOT NULL, 686 "key" TEXT NOT NULL, 687 "url" TEXT, 688 "size" INTEGER NOT NULL, 689 "mimeType" TEXT NOT NULL, 690 "status" "FileStatus" NOT NULL DEFAULT 'UPLOADING', 691 "metadata" JSONB NOT NULL DEFAULT '{}', 692 "thumbnailKey" TEXT, 693 "thumbnailUrl" TEXT, 694 "scanReport" JSONB, 695 "uploadedBy" TEXT NOT NULL, 696 "permissions" JSONB, 697 "deletedAt" TIMESTAMP(3), 698 "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, 699 "updatedAt" TIMESTAMP(3) NOT NULL, 700 701 CONSTRAINT "files_pkey" PRIMARY KEY ("id") 702); 703 704-- CreateTable 705CREATE TABLE "file_versions" ( 706 "id" TEXT NOT NULL, 707 "fileId" TEXT NOT NULL, 708 "version" INTEGER NOT NULL, 709 "key" TEXT NOT NULL, 710 "size" INTEGER NOT NULL, 711 "createdBy" TEXT, 712 "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, 713 714 CONSTRAINT "file_versions_pkey" PRIMARY KEY ("id") 715); 716 717-- CreateTable 718CREATE TABLE "permissions" ( 719 "id" TEXT NOT NULL, 720 "workspaceId" TEXT NOT NULL, 721 "granteeType" TEXT NOT NULL, 722 "granteeId" TEXT NOT NULL, 723 "resourceType" TEXT NOT NULL, 724 "resourceId" TEXT NOT NULL, 725 "level" "PermissionLevel" NOT NULL, 726 "inheritsFrom" TEXT, 727 "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, 728 "updatedAt" TIMESTAMP(3) NOT NULL, 729 730 CONSTRAINT "permissions_pkey" PRIMARY KEY ("id") 731); 732 733-- CreateTable 734CREATE TABLE "shares" ( 735 "id" TEXT NOT NULL, 736 "workspaceId" TEXT NOT NULL, 737 "pageId" TEXT, 738 "teamId" TEXT, 739 "recordId" TEXT, 740 "token" TEXT NOT NULL, 741 "scope" "ShareScope" NOT NULL DEFAULT 'PRIVATE', 742 "allowComments" BOOLEAN NOT NULL DEFAULT true, 743 "allowDuplicate" BOOLEAN NOT NULL DEFAULT false, 744 "allowSearchIndexing" BOOLEAN NOT NULL DEFAULT false, 745 "passwordHash" TEXT, 746 "expiresAt" TIMESTAMP(3), 747 "createdBy" TEXT NOT NULL, 748 "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, 749 "updatedAt" TIMESTAMP(3) NOT NULL, 750 751 CONSTRAINT "shares_pkey" PRIMARY KEY ("id") 752); 753 754-- CreateTable 755CREATE TABLE "templates" ( 756 "id" TEXT NOT NULL, 757 "workspaceId" TEXT NOT NULL, 758 "name" TEXT NOT NULL, 759 "icon" TEXT, 760 "type" TEXT NOT NULL, 761 "sourceRef" JSONB, 762 "sourceDatabaseId" TEXT, 763 "snapshot" JSONB NOT NULL, 764 "isBuiltin" BOOLEAN NOT NULL DEFAULT false, 765 "createdBy" TEXT, 766 "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, 767 "updatedAt" TIMESTAMP(3) NOT NULL, 768 769 CONSTRAINT "templates_pkey" PRIMARY KEY ("id") 770); 771 772-- CreateTable 773CREATE TABLE "automations" ( 774 "id" TEXT NOT NULL, 775 "workspaceId" TEXT NOT NULL, 776 "name" TEXT NOT NULL, 777 "description" TEXT, 778 "status" "AutomationStatus" NOT NULL DEFAULT 'DRAFT', 779 "databaseId" TEXT, 780 "createdById" TEXT NOT NULL, 781 "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, 782 "updatedAt" TIMESTAMP(3) NOT NULL, 783 784 CONSTRAINT "automations_pkey" PRIMARY KEY ("id") 785); 786 787-- CreateTable 788CREATE TABLE "automation_triggers" ( 789 "id" TEXT NOT NULL, 790 "automationId" TEXT NOT NULL, 791 "type" "AutomationTriggerType" NOT NULL, 792 "config" JSONB NOT NULL, 793 "position" INTEGER NOT NULL DEFAULT 0, 794 795 CONSTRAINT "automation_triggers_pkey" PRIMARY KEY ("id") 796); 797 798-- CreateTable 799CREATE TABLE "automation_conditions" ( 800 "id" TEXT NOT NULL, 801 "automationId" TEXT NOT NULL, 802 "expression" JSONB NOT NULL, 803 "position" INTEGER NOT NULL DEFAULT 0, 804 805 CONSTRAINT "automation_conditions_pkey" PRIMARY KEY ("id") 806); 807 808-- CreateTable 809CREATE TABLE "automation_actions" ( 810 "id" TEXT NOT NULL, 811 "automationId" TEXT NOT NULL, 812 "type" "AutomationActionType" NOT NULL, 813 "config" JSONB NOT NULL, 814 "position" INTEGER NOT NULL, 815 "retries" INTEGER NOT NULL DEFAULT 3, 816 "timeoutMs" INTEGER NOT NULL DEFAULT 30000, 817 818 CONSTRAINT "automation_actions_pkey" PRIMARY KEY ("id") 819); 820 821-- CreateTable 822CREATE TABLE "automation_runs" ( 823 "id" TEXT NOT NULL, 824 "workspaceId" TEXT NOT NULL, 825 "automationId" TEXT NOT NULL, 826 "actionId" TEXT, 827 "status" "AutomationRunStatus" NOT NULL DEFAULT 'PENDING', 828 "triggerEvent" JSONB, 829 "input" JSONB, 830 "output" JSONB, 831 "error" JSONB, 832 "startedAt" TIMESTAMP(3), 833 "finishedAt" TIMESTAMP(3), 834 "retryCount" INTEGER NOT NULL DEFAULT 0, 835 "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, 836 837 CONSTRAINT "automation_runs_pkey" PRIMARY KEY ("id") 838); 839 840-- CreateTable 841CREATE TABLE "automation_logs" ( 842 "id" TEXT NOT NULL, 843 "runId" TEXT NOT NULL, 844 "level" TEXT NOT NULL, 845 "message" TEXT NOT NULL, 846 "data" JSONB, 847 "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, 848 849 CONSTRAINT "automation_logs_pkey" PRIMARY KEY ("id") 850); 851 852-- CreateTable 853CREATE TABLE "integrations" ( 854 "id" TEXT NOT NULL, 855 "workspaceId" TEXT NOT NULL, 856 "name" TEXT NOT NULL, 857 "provider" TEXT NOT NULL, 858 "config" JSONB NOT NULL, 859 "status" TEXT NOT NULL DEFAULT 'active', 860 "createdById" TEXT NOT NULL, 861 "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, 862 "updatedAt" TIMESTAMP(3) NOT NULL, 863 864 CONSTRAINT "integrations_pkey" PRIMARY KEY ("id") 865); 866 867-- CreateTable 868CREATE TABLE "api_keys" ( 869 "id" TEXT NOT NULL, 870 "workspaceId" TEXT NOT NULL, 871 "name" TEXT NOT NULL, 872 "keyHash" TEXT NOT NULL, 873 "prefix" TEXT NOT NULL, 874 "scopes" "ApiKeyScope"[], 875 "rateLimit" INTEGER, 876 "lastUsedAt" TIMESTAMP(3), 877 "expiresAt" TIMESTAMP(3), 878 "revokedAt" TIMESTAMP(3), 879 "createdById" TEXT NOT NULL, 880 "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, 881 882 CONSTRAINT "api_keys_pkey" PRIMARY KEY ("id") 883); 884 885-- CreateTable 886CREATE TABLE "webhooks" ( 887 "id" TEXT NOT NULL, 888 "workspaceId" TEXT NOT NULL, 889 "url" TEXT NOT NULL, 890 "secretHash" TEXT NOT NULL, 891 "events" TEXT[], 892 "active" BOOLEAN NOT NULL DEFAULT true, 893 "createdById" TEXT NOT NULL, 894 "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, 895 "updatedAt" TIMESTAMP(3) NOT NULL, 896 897 CONSTRAINT "webhooks_pkey" PRIMARY KEY ("id") 898); 899 900-- CreateTable 901CREATE TABLE "webhook_deliveries" ( 902 "id" TEXT NOT NULL, 903 "webhookId" TEXT NOT NULL, 904 "event" TEXT NOT NULL, 905 "payload" JSONB NOT NULL, 906 "status" "WebhookDeliveryStatus" NOT NULL DEFAULT 'PENDING', 907 "attempts" INTEGER NOT NULL DEFAULT 0, 908 "statusCode" INTEGER, 909 "error" TEXT, 910 "deliveredAt" TIMESTAMP(3), 911 "nextRetryAt" TIMESTAMP(3), 912 "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, 913 914 CONSTRAINT "webhook_deliveries_pkey" PRIMARY KEY ("id") 915); 916 917-- CreateTable 918CREATE TABLE "audit_logs" ( 919 "id" TEXT NOT NULL, 920 "actorType" "AuditActorType" NOT NULL, 921 "actorId" TEXT NOT NULL, 922 "workspaceId" TEXT, 923 "pageId" TEXT, 924 "resourceType" TEXT NOT NULL, 925 "resourceId" TEXT NOT NULL, 926 "action" TEXT NOT NULL, 927 "ipAddress" TEXT, 928 "userAgent" TEXT, 929 "metadata" JSONB NOT NULL DEFAULT '{}', 930 "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, 931 932 CONSTRAINT "audit_logs_pkey" PRIMARY KEY ("id") 933); 934 935-- CreateTable 936CREATE TABLE "search_documents" ( 937 "id" TEXT NOT NULL, 938 "workspaceId" TEXT NOT NULL, 939 "type" TEXT NOT NULL, 940 "refId" TEXT NOT NULL, 941 "title" TEXT NOT NULL, 942 "body" TEXT, 943 "permissions" JSONB NOT NULL, 944 "metadata" JSONB NOT NULL DEFAULT '{}', 945 "indexedAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, 946 947 CONSTRAINT "search_documents_pkey" PRIMARY KEY ("id") 948); 949 950-- CreateTable 951CREATE TABLE "ai_conversations" ( 952 "id" TEXT NOT NULL, 953 "workspaceId" TEXT NOT NULL, 954 "userId" TEXT NOT NULL, 955 "title" TEXT, 956 "context" JSONB, 957 "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, 958 "updatedAt" TIMESTAMP(3) NOT NULL, 959 960 CONSTRAINT "ai_conversations_pkey" PRIMARY KEY ("id") 961); 962 963-- CreateTable 964CREATE TABLE "ai_messages" ( 965 "id" TEXT NOT NULL, 966 "conversationId" TEXT NOT NULL, 967 "role" TEXT NOT NULL, 968 "content" TEXT NOT NULL, 969 "toolCalls" JSONB, 970 "toolResults" JSONB, 971 "model" TEXT, 972 "tokensIn" INTEGER, 973 "tokensOut" INTEGER, 974 "latencyMs" INTEGER, 975 "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, 976 977 CONSTRAINT "ai_messages_pkey" PRIMARY KEY ("id") 978); 979 980-- CreateTable 981CREATE TABLE "ai_embeddings" ( 982 "id" TEXT NOT NULL, 983 "workspaceId" TEXT NOT NULL, 984 "chunkRef" TEXT NOT NULL, 985 "chunkText" TEXT NOT NULL, 986 "vectorId" TEXT NOT NULL, 987 "model" TEXT NOT NULL, 988 "dimension" INTEGER NOT NULL, 989 "metadata" JSONB NOT NULL DEFAULT '{}', 990 "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, 991 992 CONSTRAINT "ai_embeddings_pkey" PRIMARY KEY ("id") 993); 994 995-- CreateTable 996CREATE TABLE "forms" ( 997 "id" TEXT NOT NULL, 998 "workspaceId" TEXT NOT NULL, 999 "databaseId" TEXT NOT NULL, 1000 "name" TEXT NOT NULL, 1001 "slug" TEXT NOT NULL, 1002 "description" TEXT, 1003 "status" "FormStatus" NOT NULL DEFAULT 'DRAFT', 1004 "config" JSONB NOT NULL DEFAULT '{}', 1005 "createdById" TEXT NOT NULL, 1006 "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, 1007 "updatedAt" TIMESTAMP(3) NOT NULL, 1008 1009 CONSTRAINT "forms_pkey" PRIMARY KEY ("id") 1010); 1011 1012-- CreateTable 1013CREATE TABLE "form_questions" ( 1014 "id" TEXT NOT NULL, 1015 "formId" TEXT NOT NULL, 1016 "label" TEXT NOT NULL, 1017 "description" TEXT, 1018 "type" "FormQuestionType" NOT NULL, 1019 "required" BOOLEAN NOT NULL DEFAULT false, 1020 "validation" JSONB, 1021 "propertyId" TEXT, 1022 "placeholder" TEXT, 1023 "position" TEXT NOT NULL DEFAULT 'a0', 1024 "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, 1025 "updatedAt" TIMESTAMP(3) NOT NULL, 1026 1027 CONSTRAINT "form_questions_pkey" PRIMARY KEY ("id") 1028); 1029 1030-- CreateTable 1031CREATE TABLE "form_submissions" ( 1032 "id" TEXT NOT NULL, 1033 "workspaceId" TEXT NOT NULL, 1034 "formId" TEXT NOT NULL, 1035 "recordId" TEXT, 1036 "answers" JSONB NOT NULL, 1037 "submittedBy" TEXT, 1038 "ipAddress" TEXT, 1039 "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, 1040 1041 CONSTRAINT "form_submissions_pkey" PRIMARY KEY ("id") 1042); 1043 1044-- CreateIndex 1045CREATE UNIQUE INDEX "users_email_key" ON "users"("email"); 1046 1047-- CreateIndex 1048CREATE UNIQUE INDEX "refresh_tokens_tokenHash_key" ON "refresh_tokens"("tokenHash"); 1049 1050-- CreateIndex 1051CREATE UNIQUE INDEX "sessions_tokenHash_key" ON "sessions"("tokenHash"); 1052 1053-- CreateIndex 1054CREATE INDEX "sessions_userId_status_idx" ON "sessions"("userId", "status"); 1055 1056-- CreateIndex 1057CREATE UNIQUE INDEX "email_verifications_tokenHash_key" ON "email_verifications"("tokenHash"); 1058 1059-- CreateIndex 1060CREATE INDEX "email_verifications_userId_idx" ON "email_verifications"("userId"); 1061 1062-- CreateIndex 1063CREATE UNIQUE INDEX "password_resets_tokenHash_key" ON "password_resets"("tokenHash"); 1064 1065-- CreateIndex 1066CREATE INDEX "password_resets_userId_idx" ON "password_resets"("userId"); 1067 1068-- CreateIndex 1069CREATE UNIQUE INDEX "organizations_slug_key" ON "organizations"("slug"); 1070 1071-- CreateIndex 1072CREATE UNIQUE INDEX "organization_members_organizationId_userId_key" ON "organization_members"("organizationId", "userId"); 1073 1074-- CreateIndex 1075CREATE UNIQUE INDEX "sso_providers_organizationId_key" ON "sso_providers"("organizationId"); 1076 1077-- CreateIndex 1078CREATE UNIQUE INDEX "sso_identities_providerId_externalId_key" ON "sso_identities"("providerId", "externalId"); 1079 1080-- CreateIndex 1081CREATE UNIQUE INDEX "workspaces_slug_key" ON "workspaces"("slug"); 1082 1083-- CreateIndex 1084CREATE INDEX "workspaces_organizationId_idx" ON "workspaces"("organizationId"); 1085 1086-- CreateIndex 1087CREATE INDEX "workspace_members_userId_idx" ON "workspace_members"("userId"); 1088 1089-- CreateIndex 1090CREATE UNIQUE INDEX "workspace_members_workspaceId_userId_key" ON "workspace_members"("workspaceId", "userId"); 1091 1092-- CreateIndex 1093CREATE UNIQUE INDEX "invitations_tokenHash_key" ON "invitations"("tokenHash"); 1094 1095-- CreateIndex 1096CREATE INDEX "invitations_workspaceId_status_idx" ON "invitations"("workspaceId", "status"); 1097 1098-- CreateIndex 1099CREATE UNIQUE INDEX "invitations_workspaceId_email_role_key" ON "invitations"("workspaceId", "email", "role"); 1100 1101-- CreateIndex 1102CREATE UNIQUE INDEX "teams_workspaceId_slug_key" ON "teams"("workspaceId", "slug"); 1103 1104-- CreateIndex 1105CREATE UNIQUE INDEX "team_members_teamId_userId_key" ON "team_members"("teamId", "userId"); 1106 1107-- CreateIndex 1108CREATE INDEX "pages_workspaceId_parentId_position_idx" ON "pages"("workspaceId", "parentId", "position"); 1109 1110-- CreateIndex 1111CREATE INDEX "pages_workspaceId_deletedAt_idx" ON "pages"("workspaceId", "deletedAt"); 1112 1113-- CreateIndex 1114CREATE INDEX "pages_teamId_idx" ON "pages"("teamId"); 1115 1116-- CreateIndex 1117CREATE UNIQUE INDEX "page_favorites_workspaceId_userId_pageId_key" ON "page_favorites"("workspaceId", "userId", "pageId"); 1118 1119-- CreateIndex 1120CREATE UNIQUE INDEX "page_versions_pageId_version_key" ON "page_versions"("pageId", "version"); 1121 1122-- CreateIndex 1123CREATE INDEX "blocks_pageId_parentId_position_idx" ON "blocks"("pageId", "parentId", "position"); 1124 1125-- CreateIndex 1126CREATE INDEX "blocks_workspaceId_pageId_idx" ON "blocks"("workspaceId", "pageId"); 1127 1128-- CreateIndex 1129CREATE UNIQUE INDEX "block_versions_blockId_version_key" ON "block_versions"("blockId", "version"); 1130 1131-- CreateIndex 1132CREATE INDEX "databases_workspaceId_idx" ON "databases"("workspaceId"); 1133 1134-- CreateIndex 1135CREATE INDEX "database_properties_databaseId_position_idx" ON "database_properties"("databaseId", "position"); 1136 1137-- CreateIndex 1138CREATE UNIQUE INDEX "database_properties_databaseId_name_key" ON "database_properties"("databaseId", "name"); 1139 1140-- CreateIndex 1141CREATE INDEX "database_views_databaseId_position_idx" ON "database_views"("databaseId", "position"); 1142 1143-- CreateIndex 1144CREATE UNIQUE INDEX "database_records_pageId_key" ON "database_records"("pageId"); 1145 1146-- CreateIndex 1147CREATE INDEX "database_records_workspaceId_databaseId_position_idx" ON "database_records"("workspaceId", "databaseId", "position"); 1148 1149-- CreateIndex 1150CREATE INDEX "database_records_databaseId_archivedAt_idx" ON "database_records"("databaseId", "archivedAt"); 1151 1152-- CreateIndex 1153CREATE UNIQUE INDEX "record_properties_recordId_propertyId_key" ON "record_properties"("recordId", "propertyId"); 1154 1155-- CreateIndex 1156CREATE INDEX "relations_databaseId_idx" ON "relations"("databaseId"); 1157 1158-- CreateIndex 1159CREATE INDEX "relations_targetDatabaseId_idx" ON "relations"("targetDatabaseId"); 1160 1161-- CreateIndex 1162CREATE INDEX "relation_links_targetDatabaseId_targetRecordId_idx" ON "relation_links"("targetDatabaseId", "targetRecordId"); 1163 1164-- CreateIndex 1165CREATE UNIQUE INDEX "relation_links_databaseId_recordId_targetDatabaseId_targetR_key" ON "relation_links"("databaseId", "recordId", "targetDatabaseId", "targetRecordId"); 1166 1167-- CreateIndex 1168CREATE INDEX "rollups_databaseId_idx" ON "rollups"("databaseId"); 1169 1170-- CreateIndex 1171CREATE INDEX "formulas_databaseId_idx" ON "formulas"("databaseId"); 1172 1173-- CreateIndex 1174CREATE INDEX "database_buttons_databaseId_idx" ON "database_buttons"("databaseId"); 1175 1176-- CreateIndex 1177CREATE INDEX "charts_workspaceId_databaseId_idx" ON "charts"("workspaceId", "databaseId"); 1178 1179-- CreateIndex 1180CREATE INDEX "dashboards_workspaceId_idx" ON "dashboards"("workspaceId"); 1181 1182-- CreateIndex 1183CREATE INDEX "dashboard_widgets_dashboardId_position_idx" ON "dashboard_widgets"("dashboardId", "position"); 1184 1185-- CreateIndex 1186CREATE INDEX "comments_workspaceId_pageId_idx" ON "comments"("workspaceId", "pageId"); 1187 1188-- CreateIndex 1189CREATE INDEX "comments_workspaceId_blockId_idx" ON "comments"("workspaceId", "blockId"); 1190 1191-- CreateIndex 1192CREATE INDEX "comments_workspaceId_recordId_idx" ON "comments"("workspaceId", "recordId"); 1193 1194-- CreateIndex 1195CREATE INDEX "comment_replies_commentId_idx" ON "comment_replies"("commentId"); 1196 1197-- CreateIndex 1198CREATE UNIQUE INDEX "comment_reactions_commentId_replyId_userId_emoji_key" ON "comment_reactions"("commentId", "replyId", "userId", "emoji"); 1199 1200-- CreateIndex 1201CREATE INDEX "notifications_userId_readAt_idx" ON "notifications"("userId", "readAt"); 1202 1203-- CreateIndex 1204CREATE INDEX "notifications_workspaceId_userId_idx" ON "notifications"("workspaceId", "userId"); 1205 1206-- CreateIndex 1207CREATE INDEX "mention_notifications_userId_readAt_idx" ON "mention_notifications"("userId", "readAt"); 1208 1209-- CreateIndex 1210CREATE UNIQUE INDEX "files_key_key" ON "files"("key"); 1211 1212-- CreateIndex 1213CREATE INDEX "files_workspaceId_deletedAt_idx" ON "files"("workspaceId", "deletedAt"); 1214 1215-- CreateIndex 1216CREATE INDEX "files_blockId_idx" ON "files"("blockId"); 1217 1218-- CreateIndex 1219CREATE UNIQUE INDEX "file_versions_fileId_version_key" ON "file_versions"("fileId", "version"); 1220 1221-- CreateIndex 1222CREATE INDEX "permissions_workspaceId_granteeId_idx" ON "permissions"("workspaceId", "granteeId"); 1223 1224-- CreateIndex 1225CREATE INDEX "permissions_resourceType_resourceId_idx" ON "permissions"("resourceType", "resourceId"); 1226 1227-- CreateIndex 1228CREATE UNIQUE INDEX "permissions_workspaceId_granteeType_granteeId_resourceType__key" ON "permissions"("workspaceId", "granteeType", "granteeId", "resourceType", "resourceId"); 1229 1230-- CreateIndex 1231CREATE UNIQUE INDEX "shares_token_key" ON "shares"("token"); 1232 1233-- CreateIndex 1234CREATE INDEX "shares_workspaceId_pageId_idx" ON "shares"("workspaceId", "pageId"); 1235 1236-- CreateIndex 1237CREATE INDEX "shares_token_idx" ON "shares"("token"); 1238 1239-- CreateIndex 1240CREATE INDEX "templates_workspaceId_type_idx" ON "templates"("workspaceId", "type"); 1241 1242-- CreateIndex 1243CREATE INDEX "automations_workspaceId_status_idx" ON "automations"("workspaceId", "status"); 1244 1245-- CreateIndex 1246CREATE INDEX "automation_triggers_automationId_idx" ON "automation_triggers"("automationId"); 1247 1248-- CreateIndex 1249CREATE INDEX "automation_conditions_automationId_idx" ON "automation_conditions"("automationId"); 1250 1251-- CreateIndex 1252CREATE INDEX "automation_actions_automationId_position_idx" ON "automation_actions"("automationId", "position"); 1253 1254-- CreateIndex 1255CREATE INDEX "automation_runs_workspaceId_automationId_createdAt_idx" ON "automation_runs"("workspaceId", "automationId", "createdAt"); 1256 1257-- CreateIndex 1258CREATE INDEX "automation_runs_status_idx" ON "automation_runs"("status"); 1259 1260-- CreateIndex 1261CREATE INDEX "automation_logs_runId_idx" ON "automation_logs"("runId"); 1262 1263-- CreateIndex 1264CREATE INDEX "integrations_workspaceId_idx" ON "integrations"("workspaceId"); 1265 1266-- CreateIndex 1267CREATE UNIQUE INDEX "api_keys_keyHash_key" ON "api_keys"("keyHash"); 1268 1269-- CreateIndex 1270CREATE INDEX "api_keys_workspaceId_idx" ON "api_keys"("workspaceId"); 1271 1272-- CreateIndex 1273CREATE INDEX "webhooks_workspaceId_idx" ON "webhooks"("workspaceId"); 1274 1275-- CreateIndex 1276CREATE INDEX "webhook_deliveries_webhookId_status_idx" ON "webhook_deliveries"("webhookId", "status"); 1277 1278-- CreateIndex 1279CREATE INDEX "webhook_deliveries_status_nextRetryAt_idx" ON "webhook_deliveries"("status", "nextRetryAt"); 1280 1281-- CreateIndex 1282CREATE INDEX "audit_logs_workspaceId_action_createdAt_idx" ON "audit_logs"("workspaceId", "action", "createdAt"); 1283 1284-- CreateIndex 1285CREATE INDEX "audit_logs_resourceType_resourceId_createdAt_idx" ON "audit_logs"("resourceType", "resourceId", "createdAt"); 1286 1287-- CreateIndex 1288CREATE INDEX "audit_logs_actorType_actorId_createdAt_idx" ON "audit_logs"("actorType", "actorId", "createdAt"); 1289 1290-- CreateIndex 1291CREATE INDEX "search_documents_workspaceId_type_idx" ON "search_documents"("workspaceId", "type"); 1292 1293-- CreateIndex 1294CREATE UNIQUE INDEX "search_documents_type_refId_key" ON "search_documents"("type", "refId"); 1295 1296-- CreateIndex 1297CREATE INDEX "ai_conversations_workspaceId_userId_idx" ON "ai_conversations"("workspaceId", "userId"); 1298 1299-- CreateIndex 1300CREATE INDEX "ai_messages_conversationId_idx" ON "ai_messages"("conversationId"); 1301 1302-- CreateIndex 1303CREATE INDEX "ai_embeddings_workspaceId_idx" ON "ai_embeddings"("workspaceId"); 1304 1305-- CreateIndex 1306CREATE UNIQUE INDEX "ai_embeddings_workspaceId_chunkRef_key" ON "ai_embeddings"("workspaceId", "chunkRef"); 1307 1308-- CreateIndex 1309CREATE UNIQUE INDEX "forms_slug_key" ON "forms"("slug"); 1310 1311-- CreateIndex 1312CREATE INDEX "forms_workspaceId_databaseId_idx" ON "forms"("workspaceId", "databaseId"); 1313 1314-- CreateIndex 1315CREATE INDEX "form_questions_formId_position_idx" ON "form_questions"("formId", "position"); 1316 1317-- CreateIndex 1318CREATE INDEX "form_submissions_workspaceId_formId_createdAt_idx" ON "form_submissions"("workspaceId", "formId", "createdAt"); 1319 1320-- AddForeignKey 1321ALTER TABLE "refresh_tokens" ADD CONSTRAINT "refresh_tokens_userId_fkey" FOREIGN KEY ("userId") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE CASCADE; 1322 1323-- AddForeignKey 1324ALTER TABLE "sessions" ADD CONSTRAINT "sessions_userId_fkey" FOREIGN KEY ("userId") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE CASCADE; 1325 1326-- AddForeignKey 1327ALTER TABLE "password_resets" ADD CONSTRAINT "password_resets_userId_fkey" FOREIGN KEY ("userId") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE CASCADE; 1328 1329-- AddForeignKey 1330ALTER TABLE "organizations" ADD CONSTRAINT "organizations_ownerId_fkey" FOREIGN KEY ("ownerId") REFERENCES "users"("id") ON DELETE RESTRICT ON UPDATE CASCADE; 1331 1332-- AddForeignKey 1333ALTER TABLE "organization_members" ADD CONSTRAINT "organization_members_organizationId_fkey" FOREIGN KEY ("organizationId") REFERENCES "organizations"("id") ON DELETE CASCADE ON UPDATE CASCADE; 1334 1335-- AddForeignKey 1336ALTER TABLE "organization_members" ADD CONSTRAINT "organization_members_userId_fkey" FOREIGN KEY ("userId") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE CASCADE; 1337 1338-- AddForeignKey 1339ALTER TABLE "sso_providers" ADD CONSTRAINT "sso_providers_organizationId_fkey" FOREIGN KEY ("organizationId") REFERENCES "organizations"("id") ON DELETE CASCADE ON UPDATE CASCADE; 1340 1341-- AddForeignKey 1342ALTER TABLE "sso_identities" ADD CONSTRAINT "sso_identities_providerId_fkey" FOREIGN KEY ("providerId") REFERENCES "sso_providers"("id") ON DELETE CASCADE ON UPDATE CASCADE; 1343 1344-- AddForeignKey 1345ALTER TABLE "retention_policies" ADD CONSTRAINT "retention_policies_organizationId_fkey" FOREIGN KEY ("organizationId") REFERENCES "organizations"("id") ON DELETE CASCADE ON UPDATE CASCADE; 1346 1347-- AddForeignKey 1348ALTER TABLE "workspaces" ADD CONSTRAINT "workspaces_ownerId_fkey" FOREIGN KEY ("ownerId") REFERENCES "users"("id") ON DELETE SET NULL ON UPDATE CASCADE; 1349 1350-- AddForeignKey 1351ALTER TABLE "workspaces" ADD CONSTRAINT "workspaces_organizationId_fkey" FOREIGN KEY ("organizationId") REFERENCES "organizations"("id") ON DELETE SET NULL ON UPDATE CASCADE; 1352 1353-- AddForeignKey 1354ALTER TABLE "workspace_members" ADD CONSTRAINT "workspace_members_workspaceId_fkey" FOREIGN KEY ("workspaceId") REFERENCES "workspaces"("id") ON DELETE CASCADE ON UPDATE CASCADE; 1355 1356-- AddForeignKey 1357ALTER TABLE "workspace_members" ADD CONSTRAINT "workspace_members_userId_fkey" FOREIGN KEY ("userId") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE CASCADE; 1358 1359-- AddForeignKey 1360ALTER TABLE "invitations" ADD CONSTRAINT "invitations_workspaceId_fkey" FOREIGN KEY ("workspaceId") REFERENCES "workspaces"("id") ON DELETE CASCADE ON UPDATE CASCADE; 1361 1362-- AddForeignKey 1363ALTER TABLE "teams" ADD CONSTRAINT "teams_workspaceId_fkey" FOREIGN KEY ("workspaceId") REFERENCES "workspaces"("id") ON DELETE CASCADE ON UPDATE CASCADE; 1364 1365-- AddForeignKey 1366ALTER TABLE "team_members" ADD CONSTRAINT "team_members_teamId_fkey" FOREIGN KEY ("teamId") REFERENCES "teams"("id") ON DELETE CASCADE ON UPDATE CASCADE; 1367 1368-- AddForeignKey 1369ALTER TABLE "team_members" ADD CONSTRAINT "team_members_workspaceMemberId_fkey" FOREIGN KEY ("workspaceMemberId") REFERENCES "workspace_members"("id") ON DELETE CASCADE ON UPDATE CASCADE; 1370 1371-- AddForeignKey 1372ALTER TABLE "pages" ADD CONSTRAINT "pages_workspaceId_fkey" FOREIGN KEY ("workspaceId") REFERENCES "workspaces"("id") ON DELETE CASCADE ON UPDATE CASCADE; 1373 1374-- AddForeignKey 1375ALTER TABLE "pages" ADD CONSTRAINT "pages_teamId_fkey" FOREIGN KEY ("teamId") REFERENCES "teams"("id") ON DELETE SET NULL ON UPDATE CASCADE; 1376 1377-- AddForeignKey 1378ALTER TABLE "pages" ADD CONSTRAINT "pages_parentId_fkey" FOREIGN KEY ("parentId") REFERENCES "pages"("id") ON DELETE SET NULL ON UPDATE CASCADE; 1379 1380-- AddForeignKey 1381ALTER TABLE "page_favorites" ADD CONSTRAINT "page_favorites_userId_fkey" FOREIGN KEY ("userId") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE CASCADE; 1382 1383-- AddForeignKey 1384ALTER TABLE "page_favorites" ADD CONSTRAINT "page_favorites_pageId_fkey" FOREIGN KEY ("pageId") REFERENCES "pages"("id") ON DELETE CASCADE ON UPDATE CASCADE; 1385 1386-- AddForeignKey 1387ALTER TABLE "page_versions" ADD CONSTRAINT "page_versions_pageId_fkey" FOREIGN KEY ("pageId") REFERENCES "pages"("id") ON DELETE CASCADE ON UPDATE CASCADE; 1388 1389-- AddForeignKey 1390ALTER TABLE "page_versions" ADD CONSTRAINT "page_versions_createdBy_fkey" FOREIGN KEY ("createdBy") REFERENCES "users"("id") ON DELETE SET NULL ON UPDATE CASCADE; 1391 1392-- AddForeignKey 1393ALTER TABLE "blocks" ADD CONSTRAINT "blocks_pageId_fkey" FOREIGN KEY ("pageId") REFERENCES "pages"("id") ON DELETE CASCADE ON UPDATE CASCADE; 1394 1395-- AddForeignKey 1396ALTER TABLE "block_versions" ADD CONSTRAINT "block_versions_blockId_fkey" FOREIGN KEY ("blockId") REFERENCES "blocks"("id") ON DELETE CASCADE ON UPDATE CASCADE; 1397 1398-- AddForeignKey 1399ALTER TABLE "block_versions" ADD CONSTRAINT "block_versions_createdBy_fkey" FOREIGN KEY ("createdBy") REFERENCES "users"("id") ON DELETE SET NULL ON UPDATE CASCADE; 1400 1401-- AddForeignKey 1402ALTER TABLE "databases" ADD CONSTRAINT "databases_workspaceId_fkey" FOREIGN KEY ("workspaceId") REFERENCES "workspaces"("id") ON DELETE CASCADE ON UPDATE CASCADE; 1403 1404-- AddForeignKey 1405ALTER TABLE "database_properties" ADD CONSTRAINT "database_properties_databaseId_fkey" FOREIGN KEY ("databaseId") REFERENCES "databases"("id") ON DELETE CASCADE ON UPDATE CASCADE; 1406 1407-- AddForeignKey 1408ALTER TABLE "database_views" ADD CONSTRAINT "database_views_databaseId_fkey" FOREIGN KEY ("databaseId") REFERENCES "databases"("id") ON DELETE CASCADE ON UPDATE CASCADE; 1409 1410-- AddForeignKey 1411ALTER TABLE "database_records" ADD CONSTRAINT "database_records_databaseId_fkey" FOREIGN KEY ("databaseId") REFERENCES "databases"("id") ON DELETE CASCADE ON UPDATE CASCADE; 1412 1413-- AddForeignKey 1414ALTER TABLE "database_records" ADD CONSTRAINT "database_records_pageId_fkey" FOREIGN KEY ("pageId") REFERENCES "pages"("id") ON DELETE SET NULL ON UPDATE CASCADE; 1415 1416-- AddForeignKey 1417ALTER TABLE "record_properties" ADD CONSTRAINT "record_properties_recordId_fkey" FOREIGN KEY ("recordId") REFERENCES "database_records"("id") ON DELETE CASCADE ON UPDATE CASCADE; 1418 1419-- AddForeignKey 1420ALTER TABLE "record_properties" ADD CONSTRAINT "record_properties_propertyId_fkey" FOREIGN KEY ("propertyId") REFERENCES "database_properties"("id") ON DELETE CASCADE ON UPDATE CASCADE; 1421 1422-- AddForeignKey 1423ALTER TABLE "relations" ADD CONSTRAINT "relations_databaseId_fkey" FOREIGN KEY ("databaseId") REFERENCES "databases"("id") ON DELETE CASCADE ON UPDATE CASCADE; 1424 1425-- AddForeignKey 1426ALTER TABLE "relation_links" ADD CONSTRAINT "relation_links_databaseId_fkey" FOREIGN KEY ("databaseId") REFERENCES "databases"("id") ON DELETE CASCADE ON UPDATE CASCADE; 1427 1428-- AddForeignKey 1429ALTER TABLE "relation_links" ADD CONSTRAINT "relation_links_recordId_fkey" FOREIGN KEY ("recordId") REFERENCES "database_records"("id") ON DELETE CASCADE ON UPDATE CASCADE; 1430 1431-- AddForeignKey 1432ALTER TABLE "rollups" ADD CONSTRAINT "rollups_databaseId_fkey" FOREIGN KEY ("databaseId") REFERENCES "databases"("id") ON DELETE CASCADE ON UPDATE CASCADE; 1433 1434-- AddForeignKey 1435ALTER TABLE "formulas" ADD CONSTRAINT "formulas_databaseId_fkey" FOREIGN KEY ("databaseId") REFERENCES "databases"("id") ON DELETE CASCADE ON UPDATE CASCADE; 1436 1437-- AddForeignKey 1438ALTER TABLE "database_buttons" ADD CONSTRAINT "database_buttons_databaseId_fkey" FOREIGN KEY ("databaseId") REFERENCES "databases"("id") ON DELETE CASCADE ON UPDATE CASCADE; 1439 1440-- AddForeignKey 1441ALTER TABLE "charts" ADD CONSTRAINT "charts_databaseId_fkey" FOREIGN KEY ("databaseId") REFERENCES "databases"("id") ON DELETE CASCADE ON UPDATE CASCADE; 1442 1443-- AddForeignKey 1444ALTER TABLE "dashboards" ADD CONSTRAINT "dashboards_workspaceId_fkey" FOREIGN KEY ("workspaceId") REFERENCES "workspaces"("id") ON DELETE CASCADE ON UPDATE CASCADE; 1445 1446-- AddForeignKey 1447ALTER TABLE "dashboard_widgets" ADD CONSTRAINT "dashboard_widgets_dashboardId_fkey" FOREIGN KEY ("dashboardId") REFERENCES "dashboards"("id") ON DELETE CASCADE ON UPDATE CASCADE; 1448 1449-- AddForeignKey 1450ALTER TABLE "comments" ADD CONSTRAINT "comments_workspaceId_fkey" FOREIGN KEY ("workspaceId") REFERENCES "workspaces"("id") ON DELETE CASCADE ON UPDATE CASCADE; 1451 1452-- AddForeignKey 1453ALTER TABLE "comments" ADD CONSTRAINT "comments_teamId_fkey" FOREIGN KEY ("teamId") REFERENCES "teams"("id") ON DELETE SET NULL ON UPDATE CASCADE; 1454 1455-- AddForeignKey 1456ALTER TABLE "comments" ADD CONSTRAINT "comments_pageId_fkey" FOREIGN KEY ("pageId") REFERENCES "pages"("id") ON DELETE CASCADE ON UPDATE CASCADE; 1457 1458-- AddForeignKey 1459ALTER TABLE "comments" ADD CONSTRAINT "comments_blockId_fkey" FOREIGN KEY ("blockId") REFERENCES "blocks"("id") ON DELETE CASCADE ON UPDATE CASCADE; 1460 1461-- AddForeignKey 1462ALTER TABLE "comments" ADD CONSTRAINT "comments_createdBy_fkey" FOREIGN KEY ("createdBy") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE CASCADE; 1463 1464-- AddForeignKey 1465ALTER TABLE "comment_replies" ADD CONSTRAINT "comment_replies_commentId_fkey" FOREIGN KEY ("commentId") REFERENCES "comments"("id") ON DELETE CASCADE ON UPDATE CASCADE; 1466 1467-- AddForeignKey 1468ALTER TABLE "comment_replies" ADD CONSTRAINT "comment_replies_createdBy_fkey" FOREIGN KEY ("createdBy") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE CASCADE; 1469 1470-- AddForeignKey 1471ALTER TABLE "comment_reactions" ADD CONSTRAINT "comment_reactions_commentId_fkey" FOREIGN KEY ("commentId") REFERENCES "comments"("id") ON DELETE CASCADE ON UPDATE CASCADE; 1472 1473-- AddForeignKey 1474ALTER TABLE "comment_reactions" ADD CONSTRAINT "comment_reactions_replyId_fkey" FOREIGN KEY ("replyId") REFERENCES "comment_replies"("id") ON DELETE CASCADE ON UPDATE CASCADE; 1475 1476-- AddForeignKey 1477ALTER TABLE "notifications" ADD CONSTRAINT "notifications_workspaceId_fkey" FOREIGN KEY ("workspaceId") REFERENCES "workspaces"("id") ON DELETE CASCADE ON UPDATE CASCADE; 1478 1479-- AddForeignKey 1480ALTER TABLE "notifications" ADD CONSTRAINT "notifications_userId_fkey" FOREIGN KEY ("userId") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE CASCADE; 1481 1482-- AddForeignKey 1483ALTER TABLE "mention_notifications" ADD CONSTRAINT "mention_notifications_userId_fkey" FOREIGN KEY ("userId") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE CASCADE; 1484 1485-- AddForeignKey 1486ALTER TABLE "files" ADD CONSTRAINT "files_workspaceId_fkey" FOREIGN KEY ("workspaceId") REFERENCES "workspaces"("id") ON DELETE CASCADE ON UPDATE CASCADE; 1487 1488-- AddForeignKey 1489ALTER TABLE "files" ADD CONSTRAINT "files_blockId_fkey" FOREIGN KEY ("blockId") REFERENCES "blocks"("id") ON DELETE SET NULL ON UPDATE CASCADE; 1490 1491-- AddForeignKey 1492ALTER TABLE "file_versions" ADD CONSTRAINT "file_versions_fileId_fkey" FOREIGN KEY ("fileId") REFERENCES "files"("id") ON DELETE CASCADE ON UPDATE CASCADE; 1493 1494-- AddForeignKey 1495ALTER TABLE "file_versions" ADD CONSTRAINT "file_versions_createdBy_fkey" FOREIGN KEY ("createdBy") REFERENCES "users"("id") ON DELETE SET NULL ON UPDATE CASCADE; 1496 1497-- AddForeignKey 1498ALTER TABLE "shares" ADD CONSTRAINT "shares_workspaceId_fkey" FOREIGN KEY ("workspaceId") REFERENCES "workspaces"("id") ON DELETE CASCADE ON UPDATE CASCADE; 1499 1500-- AddForeignKey 1501ALTER TABLE "shares" ADD CONSTRAINT "shares_pageId_fkey" FOREIGN KEY ("pageId") REFERENCES "pages"("id") ON DELETE CASCADE ON UPDATE CASCADE; 1502 1503-- AddForeignKey 1504ALTER TABLE "shares" ADD CONSTRAINT "shares_teamId_fkey" FOREIGN KEY ("teamId") REFERENCES "teams"("id") ON DELETE CASCADE ON UPDATE CASCADE; 1505 1506-- AddForeignKey 1507ALTER TABLE "templates" ADD CONSTRAINT "templates_workspaceId_fkey" FOREIGN KEY ("workspaceId") REFERENCES "workspaces"("id") ON DELETE CASCADE ON UPDATE CASCADE; 1508 1509-- AddForeignKey 1510ALTER TABLE "automations" ADD CONSTRAINT "automations_workspaceId_fkey" FOREIGN KEY ("workspaceId") REFERENCES "workspaces"("id") ON DELETE CASCADE ON UPDATE CASCADE; 1511 1512-- AddForeignKey 1513ALTER TABLE "automations" ADD CONSTRAINT "automations_createdById_fkey" FOREIGN KEY ("createdById") REFERENCES "users"("id") ON DELETE RESTRICT ON UPDATE CASCADE; 1514 1515-- AddForeignKey 1516ALTER TABLE "automation_triggers" ADD CONSTRAINT "automation_triggers_automationId_fkey" FOREIGN KEY ("automationId") REFERENCES "automations"("id") ON DELETE CASCADE ON UPDATE CASCADE; 1517 1518-- AddForeignKey 1519ALTER TABLE "automation_conditions" ADD CONSTRAINT "automation_conditions_automationId_fkey" FOREIGN KEY ("automationId") REFERENCES "automations"("id") ON DELETE CASCADE ON UPDATE CASCADE; 1520 1521-- AddForeignKey 1522ALTER TABLE "automation_actions" ADD CONSTRAINT "automation_actions_automationId_fkey" FOREIGN KEY ("automationId") REFERENCES "automations"("id") ON DELETE CASCADE ON UPDATE CASCADE; 1523 1524-- AddForeignKey 1525ALTER TABLE "automation_runs" ADD CONSTRAINT "automation_runs_automationId_fkey" FOREIGN KEY ("automationId") REFERENCES "automations"("id") ON DELETE CASCADE ON UPDATE CASCADE; 1526 1527-- AddForeignKey 1528ALTER TABLE "automation_runs" ADD CONSTRAINT "automation_runs_actionId_fkey" FOREIGN KEY ("actionId") REFERENCES "automation_actions"("id") ON DELETE SET NULL ON UPDATE CASCADE; 1529 1530-- AddForeignKey 1531ALTER TABLE "automation_logs" ADD CONSTRAINT "automation_logs_runId_fkey" FOREIGN KEY ("runId") REFERENCES "automation_runs"("id") ON DELETE CASCADE ON UPDATE CASCADE; 1532 1533-- AddForeignKey 1534ALTER TABLE "integrations" ADD CONSTRAINT "integrations_workspaceId_fkey" FOREIGN KEY ("workspaceId") REFERENCES "workspaces"("id") ON DELETE CASCADE ON UPDATE CASCADE; 1535 1536-- AddForeignKey 1537ALTER TABLE "api_keys" ADD CONSTRAINT "api_keys_workspaceId_fkey" FOREIGN KEY ("workspaceId") REFERENCES "workspaces"("id") ON DELETE CASCADE ON UPDATE CASCADE; 1538 1539-- AddForeignKey 1540ALTER TABLE "api_keys" ADD CONSTRAINT "api_keys_createdById_fkey" FOREIGN KEY ("createdById") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE CASCADE; 1541 1542-- AddForeignKey 1543ALTER TABLE "webhooks" ADD CONSTRAINT "webhooks_workspaceId_fkey" FOREIGN KEY ("workspaceId") REFERENCES "workspaces"("id") ON DELETE CASCADE ON UPDATE CASCADE; 1544 1545-- AddForeignKey 1546ALTER TABLE "webhook_deliveries" ADD CONSTRAINT "webhook_deliveries_webhookId_fkey" FOREIGN KEY ("webhookId") REFERENCES "webhooks"("id") ON DELETE CASCADE ON UPDATE CASCADE; 1547 1548-- AddForeignKey 1549ALTER TABLE "audit_logs" ADD CONSTRAINT "audit_logs_workspaceId_fkey" FOREIGN KEY ("workspaceId") REFERENCES "workspaces"("id") ON DELETE SET NULL ON UPDATE CASCADE; 1550 1551-- AddForeignKey 1552ALTER TABLE "audit_logs" ADD CONSTRAINT "audit_logs_pageId_fkey" FOREIGN KEY ("pageId") REFERENCES "pages"("id") ON DELETE SET NULL ON UPDATE CASCADE; 1553 1554-- AddForeignKey 1555ALTER TABLE "search_documents" ADD CONSTRAINT "search_documents_workspaceId_fkey" FOREIGN KEY ("workspaceId") REFERENCES "workspaces"("id") ON DELETE CASCADE ON UPDATE CASCADE; 1556 1557-- AddForeignKey 1558ALTER TABLE "ai_conversations" ADD CONSTRAINT "ai_conversations_workspaceId_fkey" FOREIGN KEY ("workspaceId") REFERENCES "workspaces"("id") ON DELETE CASCADE ON UPDATE CASCADE; 1559 1560-- AddForeignKey 1561ALTER TABLE "ai_conversations" ADD CONSTRAINT "ai_conversations_userId_fkey" FOREIGN KEY ("userId") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE CASCADE; 1562 1563-- AddForeignKey 1564ALTER TABLE "ai_messages" ADD CONSTRAINT "ai_messages_conversationId_fkey" FOREIGN KEY ("conversationId") REFERENCES "ai_conversations"("id") ON DELETE CASCADE ON UPDATE CASCADE; 1565 1566-- AddForeignKey 1567ALTER TABLE "forms" ADD CONSTRAINT "forms_databaseId_fkey" FOREIGN KEY ("databaseId") REFERENCES "databases"("id") ON DELETE CASCADE ON UPDATE CASCADE; 1568 1569-- AddForeignKey 1570ALTER TABLE "form_questions" ADD CONSTRAINT "form_questions_formId_fkey" FOREIGN KEY ("formId") REFERENCES "forms"("id") ON DELETE CASCADE ON UPDATE CASCADE; 1571 1572-- AddForeignKey 1573ALTER TABLE "form_submissions" ADD CONSTRAINT "form_submissions_workspaceId_fkey" FOREIGN KEY ("workspaceId") REFERENCES "workspaces"("id") ON DELETE CASCADE ON UPDATE CASCADE; 1574 1575-- AddForeignKey 1576ALTER TABLE "form_submissions" ADD CONSTRAINT "form_submissions_formId_fkey" FOREIGN KEY ("formId") REFERENCES "forms"("id") ON DELETE CASCADE ON UPDATE CASCADE; 1577 1578-- AddForeignKey 1579ALTER TABLE "form_submissions" ADD CONSTRAINT "form_submissions_recordId_fkey" FOREIGN KEY ("recordId") REFERENCES "database_records"("id") ON DELETE SET NULL ON UPDATE CASCADE; 1580 1581