Track HiveGrid Cloud planning reference

This commit is contained in:
david committed 2026-06-26 20:48:01 +02:00
1 parent b3d5ea6764
commit e341c5938a
5784 files changed
+1104929 -3

No files matched your search

File diff suppressed because it is too large. Load diff
@@ -0,0 +1,32 @@
-- AlterTable
ALTER TABLE "Tenant" ADD COLUMN "active" BOOLEAN NOT NULL DEFAULT false;
-- AlterTable
ALTER TABLE "User" ADD COLUMN "active" BOOLEAN NOT NULL DEFAULT false;
-- CreateTable
CREATE TABLE "Registration" (
"id" TEXT NOT NULL,
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"email" TEXT NOT NULL,
"firstName" TEXT NOT NULL,
"lastName" TEXT NOT NULL,
"token" TEXT NOT NULL,
"company" TEXT,
"selectedSubscriptionPriceId" TEXT,
"createdTenantId" TEXT,
CONSTRAINT "Registration_pkey" PRIMARY KEY ("id")
);
-- CreateIndex
CREATE UNIQUE INDEX "Registration_email_key" ON "Registration"("email");
-- CreateIndex
CREATE UNIQUE INDEX "Registration_token_key" ON "Registration"("token");
-- CreateIndex
CREATE UNIQUE INDEX "Registration_createdTenantId_key" ON "Registration"("createdTenantId");
-- AddForeignKey
ALTER TABLE "Registration" ADD CONSTRAINT "Registration_createdTenantId_fkey" FOREIGN KEY ("createdTenantId") REFERENCES "Tenant"("id") ON DELETE CASCADE ON UPDATE CASCADE;
@@ -0,0 +1,2 @@
-- AlterTable
ALTER TABLE "Registration" ADD COLUMN "ipAddress" TEXT;
@@ -0,0 +1,10 @@
-- CreateTable
CREATE TABLE "Blacklist" (
"id" TEXT NOT NULL,
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"type" TEXT NOT NULL,
"value" TEXT NOT NULL,
"active" BOOLEAN NOT NULL DEFAULT true,
CONSTRAINT "Blacklist_pkey" PRIMARY KEY ("id")
);
@@ -0,0 +1,2 @@
-- AlterTable
ALTER TABLE "Blacklist" ADD COLUMN "registerAttempts" INTEGER NOT NULL DEFAULT 0;
@@ -0,0 +1,68 @@
-- CreateTable
CREATE TABLE "AnalyticsSettings" (
"id" TEXT NOT NULL,
"public" BOOLEAN NOT NULL DEFAULT false,
"ignorePages" TEXT[],
"onlyPages" TEXT[],
CONSTRAINT "AnalyticsSettings_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "AnalyticsUniqueVisitor" (
"id" TEXT NOT NULL,
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"cookie" TEXT NOT NULL,
"httpReferrer" TEXT,
"browser" TEXT,
"browserVersion" TEXT,
"os" TEXT,
"osVersion" TEXT,
"device" TEXT,
"source" TEXT,
"medium" TEXT,
"campaign" TEXT,
"content" TEXT,
"term" TEXT,
"country" TEXT,
"city" TEXT,
"fromUrl" TEXT,
"fromRoute" TEXT,
CONSTRAINT "AnalyticsUniqueVisitor_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "AnalyticsPageView" (
"id" TEXT NOT NULL,
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"uniqueVisitorId" TEXT NOT NULL,
"url" TEXT NOT NULL,
"route" TEXT,
CONSTRAINT "AnalyticsPageView_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "AnalyticsEvent" (
"id" TEXT NOT NULL,
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"uniqueVisitorId" TEXT NOT NULL,
"action" TEXT NOT NULL,
"category" TEXT,
"label" TEXT,
"value" TEXT,
"url" TEXT,
"route" TEXT,
CONSTRAINT "AnalyticsEvent_pkey" PRIMARY KEY ("id")
);
-- CreateIndex
CREATE UNIQUE INDEX "AnalyticsUniqueVisitor_cookie_key" ON "AnalyticsUniqueVisitor"("cookie");
-- AddForeignKey
ALTER TABLE "AnalyticsPageView" ADD CONSTRAINT "AnalyticsPageView_uniqueVisitorId_fkey" FOREIGN KEY ("uniqueVisitorId") REFERENCES "AnalyticsUniqueVisitor"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "AnalyticsEvent" ADD CONSTRAINT "AnalyticsEvent_uniqueVisitorId_fkey" FOREIGN KEY ("uniqueVisitorId") REFERENCES "AnalyticsUniqueVisitor"("id") ON DELETE CASCADE ON UPDATE CASCADE;
@@ -0,0 +1,134 @@
/*
Warnings:
- You are about to drop the column `quantity` on the `TenantSubscription` table. All the data in the column will be lost.
- You are about to drop the column `stripeSubscriptionId` on the `TenantSubscription` table. All the data in the column will be lost.
- You are about to drop the column `subscriptionPriceId` on the `TenantSubscription` table. All the data in the column will be lost.
- The required column `id` was added to the `TenantSubscription` table with a prisma-level default value. This is not possible if the table is not empty. Please add this column as optional, then populate it before making it required.
*/
-- DropForeignKey
ALTER TABLE "TenantSubscription" DROP CONSTRAINT "TenantSubscription_subscriptionPriceId_fkey";
-- AlterTable
ALTER TABLE "AnalyticsSettings" ALTER COLUMN "ignorePages" SET NOT NULL,
ALTER COLUMN "ignorePages" SET DATA TYPE TEXT,
ALTER COLUMN "onlyPages" SET NOT NULL,
ALTER COLUMN "onlyPages" SET DATA TYPE TEXT;
-- AlterTable
ALTER TABLE "SubscriptionPrice" ALTER COLUMN "price" SET DATA TYPE DECIMAL(65,30);
-- AlterTable
ALTER TABLE "TenantSubscription" DROP COLUMN "quantity",
DROP COLUMN "stripeSubscriptionId",
DROP COLUMN "subscriptionPriceId",
ADD COLUMN "id" TEXT NOT NULL,
ADD CONSTRAINT "TenantSubscription_pkey" PRIMARY KEY ("id");
-- CreateTable
CREATE TABLE "TenantSubscriptionProduct" (
"id" TEXT NOT NULL,
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"tenantSubscriptionId" TEXT NOT NULL,
"subscriptionProductId" TEXT NOT NULL,
"cancelledAt" TIMESTAMP(3),
"endsAt" TIMESTAMP(3),
"stripeSubscriptionId" TEXT,
"quantity" INTEGER,
"fromCheckoutSessionId" TEXT,
CONSTRAINT "TenantSubscriptionProduct_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "TenantSubscriptionProductPrice" (
"id" TEXT NOT NULL,
"tenantSubscriptionProductId" TEXT NOT NULL,
"subscriptionPriceId" TEXT,
"subscriptionUsageBasedPriceId" TEXT,
CONSTRAINT "TenantSubscriptionProductPrice_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "TenantSubscriptionUsageRecord" (
"id" TEXT NOT NULL,
"tenantSubscriptionProductPriceId" TEXT NOT NULL,
"timestamp" INTEGER NOT NULL,
"quantity" INTEGER NOT NULL,
"stripeSubscriptionItemId" TEXT,
CONSTRAINT "TenantSubscriptionUsageRecord_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "CheckoutSessionStatus" (
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updatedAt" TIMESTAMP(3) NOT NULL,
"id" TEXT NOT NULL,
"pending" BOOLEAN NOT NULL DEFAULT true,
"email" TEXT NOT NULL,
"fromUrl" TEXT NOT NULL,
"fromUserId" TEXT,
"fromTenantId" TEXT,
"createdUserId" TEXT,
"createdTenantId" TEXT
);
-- CreateTable
CREATE TABLE "SubscriptionUsageBasedPrice" (
"id" TEXT NOT NULL,
"subscriptionProductId" TEXT NOT NULL,
"stripeId" TEXT NOT NULL,
"billingPeriod" INTEGER NOT NULL,
"currency" TEXT NOT NULL,
"unit" TEXT NOT NULL,
"unitTitle" TEXT NOT NULL,
"unitTitlePlural" TEXT NOT NULL,
"usageType" TEXT NOT NULL,
"aggregateUsage" TEXT NOT NULL,
"tiersMode" TEXT NOT NULL,
"billingScheme" TEXT NOT NULL,
CONSTRAINT "SubscriptionUsageBasedPrice_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "SubscriptionUsageBasedTier" (
"id" TEXT NOT NULL,
"subscriptionUsageBasedPriceId" TEXT NOT NULL,
"from" INTEGER NOT NULL,
"to" INTEGER,
"perUnitPrice" DECIMAL(65,30),
"flatFeePrice" DECIMAL(65,30),
CONSTRAINT "SubscriptionUsageBasedTier_pkey" PRIMARY KEY ("id")
);
-- CreateIndex
CREATE UNIQUE INDEX "CheckoutSessionStatus_id_key" ON "CheckoutSessionStatus"("id");
-- AddForeignKey
ALTER TABLE "TenantSubscriptionProduct" ADD CONSTRAINT "TenantSubscriptionProduct_tenantSubscriptionId_fkey" FOREIGN KEY ("tenantSubscriptionId") REFERENCES "TenantSubscription"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "TenantSubscriptionProduct" ADD CONSTRAINT "TenantSubscriptionProduct_subscriptionProductId_fkey" FOREIGN KEY ("subscriptionProductId") REFERENCES "SubscriptionProduct"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "TenantSubscriptionProductPrice" ADD CONSTRAINT "TenantSubscriptionProductPrice_tenantSubscriptionProductId_fkey" FOREIGN KEY ("tenantSubscriptionProductId") REFERENCES "TenantSubscriptionProduct"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "TenantSubscriptionProductPrice" ADD CONSTRAINT "TenantSubscriptionProductPrice_subscriptionPriceId_fkey" FOREIGN KEY ("subscriptionPriceId") REFERENCES "SubscriptionPrice"("id") ON DELETE SET NULL ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "TenantSubscriptionProductPrice" ADD CONSTRAINT "TenantSubscriptionProductPrice_subscriptionUsageBasedPrice_fkey" FOREIGN KEY ("subscriptionUsageBasedPriceId") REFERENCES "SubscriptionUsageBasedPrice"("id") ON DELETE SET NULL ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "TenantSubscriptionUsageRecord" ADD CONSTRAINT "TenantSubscriptionUsageRecord_tenantSubscriptionProductPri_fkey" FOREIGN KEY ("tenantSubscriptionProductPriceId") REFERENCES "TenantSubscriptionProductPrice"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "SubscriptionUsageBasedPrice" ADD CONSTRAINT "SubscriptionUsageBasedPrice_subscriptionProductId_fkey" FOREIGN KEY ("subscriptionProductId") REFERENCES "SubscriptionProduct"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "SubscriptionUsageBasedTier" ADD CONSTRAINT "SubscriptionUsageBasedTier_subscriptionUsageBasedPriceId_fkey" FOREIGN KEY ("subscriptionUsageBasedPriceId") REFERENCES "SubscriptionUsageBasedPrice"("id") ON DELETE CASCADE ON UPDATE CASCADE;
@@ -0,0 +1,2 @@
-- AlterTable
ALTER TABLE "User" ADD COLUMN "githubId" TEXT;
@@ -0,0 +1,8 @@
/*
Warnings:
- A unique constraint covering the columns `[githubId]` on the table `User` will be added. If there are existing duplicate values, this will fail.
*/
-- CreateIndex
CREATE UNIQUE INDEX "User_githubId_key" ON "User"("githubId");
@@ -0,0 +1,49 @@
-- CreateTable
CREATE TABLE "AppConfiguration" (
"id" TEXT NOT NULL,
"updatedAt" TIMESTAMP(3) NOT NULL,
"name" TEXT NOT NULL,
"url" TEXT NOT NULL,
"authRequireEmailVerification" BOOLEAN NOT NULL DEFAULT false,
"authRequireOrganization" BOOLEAN NOT NULL DEFAULT true,
"authRequireName" BOOLEAN NOT NULL DEFAULT true,
"authRecaptchaSiteKey" TEXT,
"analyticsEnabled" BOOLEAN NOT NULL DEFAULT true,
"analyticsSimpleAnalytics" BOOLEAN NOT NULL DEFAULT false,
"analyticsPlausibleAnalytics" BOOLEAN NOT NULL DEFAULT false,
"analyticsGoogleAnalyticsTrackingId" TEXT,
"subscriptionRequired" BOOLEAN NOT NULL DEFAULT true,
"subscriptionAllowSubscribeBeforeSignUp" BOOLEAN NOT NULL DEFAULT true,
"subscriptionAllowSignUpBeforeSubscribe" BOOLEAN NOT NULL DEFAULT true,
"cookiesEnabled" BOOLEAN NOT NULL DEFAULT false,
CONSTRAINT "AppConfiguration_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "AppCookie" (
"id" TEXT NOT NULL,
"category" INTEGER NOT NULL,
"name" TEXT NOT NULL,
"description" TEXT NOT NULL,
"enabled" BOOLEAN NOT NULL DEFAULT true,
"expiry" TEXT,
"domain" TEXT,
"type" TEXT,
"href" TEXT,
CONSTRAINT "AppCookie_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "MetaTag" (
"id" TEXT NOT NULL,
"path" TEXT NOT NULL,
"name" TEXT NOT NULL,
"value" TEXT NOT NULL,
CONSTRAINT "MetaTag_pkey" PRIMARY KEY ("id")
);
-- CreateIndex
CREATE UNIQUE INDEX "MetaTag_path_name_value_key" ON "MetaTag"("path", "name", "value");
@@ -0,0 +1,2 @@
-- AlterTable
ALTER TABLE "AnalyticsUniqueVisitor" ADD COLUMN "via" TEXT;
@@ -0,0 +1,364 @@
/*
Warnings:
- You are about to drop the column `isDefault` on the `Entity` table. All the data in the column will be lost.
- You are about to drop the column `isFeature` on the `Entity` table. All the data in the column will be lost.
- You are about to drop the column `requiresLinkedAccounts` on the `Entity` table. All the data in the column will be lost.
- You are about to drop the column `isDetail` on the `Property` table. All the data in the column will be lost.
- You are about to drop the column `parentId` on the `Property` table. All the data in the column will be lost.
- You are about to drop the column `parentId` on the `PropertyOption` table. All the data in the column will be lost.
- You are about to drop the column `contactId` on the `Row` table. All the data in the column will be lost.
- You are about to drop the column `contractId` on the `Row` table. All the data in the column will be lost.
- You are about to drop the column `dealId` on the `Row` table. All the data in the column will be lost.
- You are about to drop the column `linkedAccountId` on the `Row` table. All the data in the column will be lost.
- You are about to drop the column `parentRowId` on the `Row` table. All the data in the column will be lost.
- You are about to drop the column `idValue` on the `RowValue` table. All the data in the column will be lost.
- You are about to drop the column `relatedRowId` on the `RowValue` table. All the data in the column will be lost.
- You are about to drop the `Contact` table. If the table is not empty, all the data it contains will be lost.
- You are about to drop the `Contract` table. If the table is not empty, all the data it contains will be lost.
- You are about to drop the `ContractActivity` table. If the table is not empty, all the data it contains will be lost.
- You are about to drop the `ContractEmployee` table. If the table is not empty, all the data it contains will be lost.
- You are about to drop the `ContractMember` table. If the table is not empty, all the data it contains will be lost.
- You are about to drop the `Deal` table. If the table is not empty, all the data it contains will be lost.
*/
-- DropForeignKey
ALTER TABLE "Contact" DROP CONSTRAINT "Contact_ownerId_fkey";
-- DropForeignKey
ALTER TABLE "Contact" DROP CONSTRAINT "Contact_rowId_fkey";
-- DropForeignKey
ALTER TABLE "Contract" DROP CONSTRAINT "Contract_rowId_fkey";
-- DropForeignKey
ALTER TABLE "ContractActivity" DROP CONSTRAINT "ContractActivity_contractId_fkey";
-- DropForeignKey
ALTER TABLE "ContractActivity" DROP CONSTRAINT "ContractActivity_createdByUserId_fkey";
-- DropForeignKey
ALTER TABLE "ContractEmployee" DROP CONSTRAINT "ContractEmployee_contractId_fkey";
-- DropForeignKey
ALTER TABLE "ContractEmployee" DROP CONSTRAINT "ContractEmployee_rowId_fkey";
-- DropForeignKey
ALTER TABLE "ContractMember" DROP CONSTRAINT "ContractMember_contractId_fkey";
-- DropForeignKey
ALTER TABLE "ContractMember" DROP CONSTRAINT "ContractMember_userId_fkey";
-- DropForeignKey
ALTER TABLE "Deal" DROP CONSTRAINT "Deal_contactId_fkey";
-- DropForeignKey
ALTER TABLE "Deal" DROP CONSTRAINT "Deal_rowId_fkey";
-- DropForeignKey
ALTER TABLE "Deal" DROP CONSTRAINT "Deal_subscriptionPriceId_fkey";
-- DropForeignKey
ALTER TABLE "Property" DROP CONSTRAINT "Property_parentId_fkey";
-- DropForeignKey
ALTER TABLE "PropertyOption" DROP CONSTRAINT "PropertyOption_parentId_fkey";
-- DropForeignKey
ALTER TABLE "Row" DROP CONSTRAINT "Row_createdByApiKeyId_fkey";
-- DropForeignKey
ALTER TABLE "Row" DROP CONSTRAINT "Row_createdByUserId_fkey";
-- DropForeignKey
ALTER TABLE "Row" DROP CONSTRAINT "Row_entityId_fkey";
-- DropForeignKey
ALTER TABLE "Row" DROP CONSTRAINT "Row_linkedAccountId_fkey";
-- DropForeignKey
ALTER TABLE "Row" DROP CONSTRAINT "Row_parentRowId_fkey";
-- DropForeignKey
ALTER TABLE "Row" DROP CONSTRAINT "Row_tenantId_fkey";
-- DropForeignKey
ALTER TABLE "Row" DROP CONSTRAINT "Row_workflowStateId_fkey";
-- DropForeignKey
ALTER TABLE "RowValue" DROP CONSTRAINT "RowValue_relatedRowId_fkey";
-- DropIndex
DROP INDEX "Entity_order_key";
-- DropIndex
DROP INDEX "EntityView_entityId_name_key";
-- DropIndex
DROP INDEX "EntityView_entityId_order_key";
-- AlterTable
ALTER TABLE "Entity" DROP COLUMN "isDefault",
DROP COLUMN "isFeature",
DROP COLUMN "requiresLinkedAccounts",
ADD COLUMN "moduleId" TEXT,
ADD COLUMN "showInSidebar" BOOLEAN NOT NULL DEFAULT true,
ADD COLUMN "type" TEXT NOT NULL DEFAULT 'app';
-- AlterTable
ALTER TABLE "EntityView" ADD COLUMN "tenantId" TEXT,
ADD COLUMN "userId" TEXT;
-- AlterTable
ALTER TABLE "EntityViewFilter" ADD COLUMN "match" TEXT NOT NULL DEFAULT 'and';
-- AlterTable
ALTER TABLE "EntityWorkflowState" ADD COLUMN "progress" INTEGER;
-- AlterTable
ALTER TABLE "Property" DROP COLUMN "isDetail",
DROP COLUMN "parentId",
ADD COLUMN "isDisplay" BOOLEAN NOT NULL DEFAULT false,
ADD COLUMN "isUnique" BOOLEAN NOT NULL DEFAULT false;
-- AlterTable
ALTER TABLE "PropertyOption" DROP COLUMN "parentId";
-- AlterTable
ALTER TABLE "Row" DROP COLUMN "contactId",
DROP COLUMN "contractId",
DROP COLUMN "dealId",
DROP COLUMN "linkedAccountId",
DROP COLUMN "parentRowId";
-- AlterTable
ALTER TABLE "RowValue" DROP COLUMN "idValue",
DROP COLUMN "relatedRowId";
-- DropTable
DROP TABLE "Contact";
-- DropTable
DROP TABLE "Contract";
-- DropTable
DROP TABLE "ContractActivity";
-- DropTable
DROP TABLE "ContractEmployee";
-- DropTable
DROP TABLE "ContractMember";
-- DropTable
DROP TABLE "Deal";
-- CreateTable
CREATE TABLE "Module" (
"id" TEXT NOT NULL,
"type" TEXT NOT NULL DEFAULT 'app',
"order" INTEGER NOT NULL,
"name" TEXT NOT NULL,
"title" TEXT NOT NULL,
"description" TEXT NOT NULL,
"icon" TEXT NOT NULL,
CONSTRAINT "Module_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "EntityRelationship" (
"id" TEXT NOT NULL,
"parentId" TEXT NOT NULL,
"childId" TEXT NOT NULL,
"multiple" BOOLEAN NOT NULL,
"required" BOOLEAN NOT NULL,
CONSTRAINT "EntityRelationship_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "SampleCustomEntity" (
"rowId" TEXT NOT NULL,
"customText" TEXT NOT NULL,
"customNumber" DECIMAL(65,30) NOT NULL,
"customDate" TIMESTAMP(3) NOT NULL,
"customBoolean" BOOLEAN NOT NULL,
"customSelect" TEXT NOT NULL
);
-- CreateTable
CREATE TABLE "RowRelationship" (
"id" TEXT NOT NULL,
"relationshipId" TEXT NOT NULL,
"parentId" TEXT NOT NULL,
"childId" TEXT NOT NULL,
CONSTRAINT "RowRelationship_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "RowValueSelection" (
"id" TEXT NOT NULL,
"rowValueId" TEXT NOT NULL,
"propertyOptionId" TEXT NOT NULL,
CONSTRAINT "RowValueSelection_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "EmailSender" (
"id" TEXT NOT NULL,
"tenantId" TEXT,
"provider" TEXT NOT NULL,
"stream" TEXT NOT NULL,
"apiKey" TEXT NOT NULL,
"fromEmail" TEXT NOT NULL,
"fromName" TEXT,
"replyToEmail" TEXT,
CONSTRAINT "EmailSender_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "Campaign" (
"id" TEXT NOT NULL,
"tenantId" TEXT,
"emailSenderId" TEXT NOT NULL,
"name" TEXT NOT NULL,
"subject" TEXT NOT NULL,
"htmlBody" TEXT NOT NULL,
"textBody" TEXT,
"status" TEXT NOT NULL DEFAULT 'draft',
"track" BOOLEAN NOT NULL,
"sentAt" TIMESTAMP(3),
CONSTRAINT "Campaign_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "OutboundEmail" (
"id" TEXT NOT NULL,
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"tenantId" TEXT,
"campaignId" TEXT,
"contactRowId" TEXT,
"email" TEXT NOT NULL,
"fromSenderId" TEXT NOT NULL,
"isPreview" BOOLEAN,
"error" TEXT,
"sentAt" TIMESTAMP(3),
"deliveredAt" TIMESTAMP(3),
"bouncedAt" TIMESTAMP(3),
"spamComplainedAt" TIMESTAMP(3),
"unsubscribedAt" TIMESTAMP(3),
CONSTRAINT "OutboundEmail_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "OutboundEmailOpen" (
"id" TEXT NOT NULL,
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"firstOpen" BOOLEAN NOT NULL,
"outboundEmailId" TEXT NOT NULL,
CONSTRAINT "OutboundEmailOpen_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "OutboundEmailClick" (
"id" TEXT NOT NULL,
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"link" TEXT NOT NULL,
"outboundEmailId" TEXT NOT NULL,
CONSTRAINT "OutboundEmailClick_pkey" PRIMARY KEY ("id")
);
-- CreateIndex
CREATE UNIQUE INDEX "Module_name_key" ON "Module"("name");
-- CreateIndex
CREATE UNIQUE INDEX "EntityRelationship_parentId_childId_key" ON "EntityRelationship"("parentId", "childId");
-- CreateIndex
CREATE UNIQUE INDEX "SampleCustomEntity_rowId_key" ON "SampleCustomEntity"("rowId");
-- CreateIndex
CREATE UNIQUE INDEX "RowRelationship_parentId_childId_key" ON "RowRelationship"("parentId", "childId");
-- AddForeignKey
ALTER TABLE "Entity" ADD CONSTRAINT "Entity_moduleId_fkey" FOREIGN KEY ("moduleId") REFERENCES "Module"("id") ON DELETE SET NULL ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "EntityView" ADD CONSTRAINT "EntityView_tenantId_fkey" FOREIGN KEY ("tenantId") REFERENCES "Tenant"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "EntityView" ADD CONSTRAINT "EntityView_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "EntityRelationship" ADD CONSTRAINT "EntityRelationship_parentId_fkey" FOREIGN KEY ("parentId") REFERENCES "Entity"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "EntityRelationship" ADD CONSTRAINT "EntityRelationship_childId_fkey" FOREIGN KEY ("childId") REFERENCES "Entity"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "SampleCustomEntity" ADD CONSTRAINT "SampleCustomEntity_rowId_fkey" FOREIGN KEY ("rowId") REFERENCES "Row"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "RowRelationship" ADD CONSTRAINT "RowRelationship_relationshipId_fkey" FOREIGN KEY ("relationshipId") REFERENCES "EntityRelationship"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "RowRelationship" ADD CONSTRAINT "RowRelationship_parentId_fkey" FOREIGN KEY ("parentId") REFERENCES "Row"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "RowRelationship" ADD CONSTRAINT "RowRelationship_childId_fkey" FOREIGN KEY ("childId") REFERENCES "Row"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "Row" ADD CONSTRAINT "Row_createdByApiKeyId_fkey" FOREIGN KEY ("createdByApiKeyId") REFERENCES "ApiKey"("id") ON DELETE SET NULL ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "Row" ADD CONSTRAINT "Row_createdByUserId_fkey" FOREIGN KEY ("createdByUserId") REFERENCES "User"("id") ON DELETE SET NULL ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "Row" ADD CONSTRAINT "Row_entityId_fkey" FOREIGN KEY ("entityId") REFERENCES "Entity"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "Row" ADD CONSTRAINT "Row_tenantId_fkey" FOREIGN KEY ("tenantId") REFERENCES "Tenant"("id") ON DELETE SET NULL ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "Row" ADD CONSTRAINT "Row_workflowStateId_fkey" FOREIGN KEY ("workflowStateId") REFERENCES "EntityWorkflowState"("id") ON DELETE SET NULL ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "RowValueSelection" ADD CONSTRAINT "RowValueSelection_propertyOptionId_fkey" FOREIGN KEY ("propertyOptionId") REFERENCES "PropertyOption"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "RowValueSelection" ADD CONSTRAINT "RowValueSelection_rowValueId_fkey" FOREIGN KEY ("rowValueId") REFERENCES "RowValue"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "EmailSender" ADD CONSTRAINT "EmailSender_tenantId_fkey" FOREIGN KEY ("tenantId") REFERENCES "Tenant"("id") ON DELETE SET NULL ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "Campaign" ADD CONSTRAINT "Campaign_emailSenderId_fkey" FOREIGN KEY ("emailSenderId") REFERENCES "EmailSender"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "Campaign" ADD CONSTRAINT "Campaign_tenantId_fkey" FOREIGN KEY ("tenantId") REFERENCES "Tenant"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "OutboundEmail" ADD CONSTRAINT "OutboundEmail_tenantId_fkey" FOREIGN KEY ("tenantId") REFERENCES "Tenant"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "OutboundEmail" ADD CONSTRAINT "OutboundEmail_campaignId_fkey" FOREIGN KEY ("campaignId") REFERENCES "Campaign"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "OutboundEmail" ADD CONSTRAINT "OutboundEmail_contactRowId_fkey" FOREIGN KEY ("contactRowId") REFERENCES "Row"("id") ON DELETE SET NULL ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "OutboundEmail" ADD CONSTRAINT "OutboundEmail_fromSenderId_fkey" FOREIGN KEY ("fromSenderId") REFERENCES "EmailSender"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "OutboundEmailOpen" ADD CONSTRAINT "OutboundEmailOpen_outboundEmailId_fkey" FOREIGN KEY ("outboundEmailId") REFERENCES "OutboundEmail"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "OutboundEmailClick" ADD CONSTRAINT "OutboundEmailClick_outboundEmailId_fkey" FOREIGN KEY ("outboundEmailId") REFERENCES "OutboundEmail"("id") ON DELETE CASCADE ON UPDATE CASCADE;
@@ -0,0 +1,17 @@
/*
Warnings:
- Added the required column `updatedAt` to the `EntityView` table without a default value. This is not possible if the table is not empty.
*/
-- AlterTable
ALTER TABLE "EntityView" ADD COLUMN "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
ADD COLUMN "createdByUserId" TEXT,
ADD COLUMN "updatedAt" TIMESTAMP(3) NOT NULL;
-- AlterTable
ALTER TABLE "EntityViewProperty" ADD COLUMN "name" TEXT,
ALTER COLUMN "propertyId" DROP NOT NULL;
-- AddForeignKey
ALTER TABLE "EntityView" ADD CONSTRAINT "EntityView_createdByUserId_fkey" FOREIGN KEY ("createdByUserId") REFERENCES "User"("id") ON DELETE SET NULL ON UPDATE CASCADE;
@@ -0,0 +1,11 @@
/*
Warnings:
- A unique constraint covering the columns `[googleId]` on the table `User` will be added. If there are existing duplicate values, this will fail.
*/
-- AlterTable
ALTER TABLE "User" ADD COLUMN "googleId" TEXT;
-- CreateIndex
CREATE UNIQUE INDEX "User_googleId_key" ON "User"("googleId");
@@ -0,0 +1,10 @@
-- CreateTable
CREATE TABLE "PageBlock" (
"id" TEXT NOT NULL,
"path" TEXT NOT NULL,
"order" INTEGER NOT NULL,
"type" TEXT NOT NULL,
"value" TEXT NOT NULL,
CONSTRAINT "PageBlock_pkey" PRIMARY KEY ("id")
);
@@ -0,0 +1,53 @@
/*
Warnings:
- You are about to drop the column `path` on the `PageBlock` table. All the data in the column will be lost.
- You are about to drop the `MetaTag` table. If the table is not empty, all the data it contains will be lost.
- Added the required column `pageId` to the `PageBlock` table without a default value. This is not possible if the table is not empty.
*/
-- AlterTable
ALTER TABLE "PageBlock" DROP COLUMN "path",
ADD COLUMN "pageId" TEXT NOT NULL;
-- AlterTable
ALTER TABLE "SubscriptionFeature" ADD COLUMN "href" TEXT;
-- AlterTable
ALTER TABLE "SubscriptionProduct" ADD COLUMN "groupDescription" TEXT,
ADD COLUMN "groupTitle" TEXT;
-- DropTable
DROP TABLE "MetaTag";
-- CreateTable
CREATE TABLE "Page" (
"id" TEXT NOT NULL,
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updatedAt" TIMESTAMP(3) NOT NULL,
"slug" TEXT NOT NULL,
"isPublished" BOOLEAN NOT NULL DEFAULT false,
"isPublic" BOOLEAN NOT NULL DEFAULT false,
CONSTRAINT "Page_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "PageMetaTag" (
"id" TEXT NOT NULL,
"pageId" TEXT,
"order" INTEGER,
"name" TEXT NOT NULL,
"value" TEXT NOT NULL,
CONSTRAINT "PageMetaTag_pkey" PRIMARY KEY ("id")
);
-- CreateIndex
CREATE UNIQUE INDEX "PageMetaTag_pageId_name_value_key" ON "PageMetaTag"("pageId", "name", "value");
-- AddForeignKey
ALTER TABLE "PageMetaTag" ADD CONSTRAINT "PageMetaTag_pageId_fkey" FOREIGN KEY ("pageId") REFERENCES "Page"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "PageBlock" ADD CONSTRAINT "PageBlock_pageId_fkey" FOREIGN KEY ("pageId") REFERENCES "Page"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
@@ -0,0 +1,162 @@
-- AlterTable
ALTER TABLE "User" ADD COLUMN "locale" TEXT;
-- CreateTable
CREATE TABLE "Tag" (
"id" TEXT NOT NULL,
"name" TEXT NOT NULL,
"color" INTEGER,
CONSTRAINT "Tag_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "TagUser" (
"id" TEXT NOT NULL,
"userId" TEXT NOT NULL,
"tagId" TEXT NOT NULL,
CONSTRAINT "TagUser_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "TagTenant" (
"id" TEXT NOT NULL,
"tenantId" TEXT NOT NULL,
"tagId" TEXT NOT NULL,
CONSTRAINT "TagTenant_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "Onboarding" (
"id" TEXT NOT NULL,
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updatedAt" TIMESTAMP(3) NOT NULL,
"title" TEXT NOT NULL,
"type" TEXT NOT NULL,
"realtime" BOOLEAN NOT NULL DEFAULT false,
"active" BOOLEAN NOT NULL DEFAULT false,
"canBeDismissed" BOOLEAN NOT NULL DEFAULT true,
"height" TEXT,
CONSTRAINT "Onboarding_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "OnboardingFilter" (
"id" TEXT NOT NULL,
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"onboardingId" TEXT NOT NULL,
"type" TEXT NOT NULL,
"value" TEXT,
CONSTRAINT "OnboardingFilter_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "OnboardingStep" (
"id" TEXT NOT NULL,
"onboardingId" TEXT NOT NULL,
"order" INTEGER NOT NULL,
"block" TEXT NOT NULL,
CONSTRAINT "OnboardingStep_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "OnboardingSession" (
"id" TEXT NOT NULL,
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updatedAt" TIMESTAMP(3) NOT NULL,
"onboardingId" TEXT NOT NULL,
"userId" TEXT NOT NULL,
"tenantId" TEXT,
"status" TEXT NOT NULL,
"startedAt" TIMESTAMP(3),
"completedAt" TIMESTAMP(3),
"dismissedAt" TIMESTAMP(3),
"createdRealtime" BOOLEAN NOT NULL DEFAULT false,
CONSTRAINT "OnboardingSession_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "OnboardingSessionAction" (
"id" TEXT NOT NULL,
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"onboardingSessionId" TEXT NOT NULL,
"type" TEXT NOT NULL,
"name" TEXT NOT NULL,
"value" TEXT NOT NULL,
CONSTRAINT "OnboardingSessionAction_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "OnboardingSessionFilterMatch" (
"id" TEXT NOT NULL,
"onboardingFilterId" TEXT NOT NULL,
"onboardingSessionId" TEXT NOT NULL,
CONSTRAINT "OnboardingSessionFilterMatch_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "OnboardingSessionStep" (
"id" TEXT NOT NULL,
"onboardingSessionId" TEXT NOT NULL,
"stepId" TEXT NOT NULL,
"seenAt" TIMESTAMP(3),
"completedAt" TIMESTAMP(3),
CONSTRAINT "OnboardingSessionStep_pkey" PRIMARY KEY ("id")
);
-- CreateIndex
CREATE UNIQUE INDEX "Tag_name_key" ON "Tag"("name");
-- CreateIndex
CREATE UNIQUE INDEX "OnboardingSession_onboardingId_userId_tenantId_key" ON "OnboardingSession"("onboardingId", "userId", "tenantId");
-- AddForeignKey
ALTER TABLE "TagUser" ADD CONSTRAINT "TagUser_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "TagUser" ADD CONSTRAINT "TagUser_tagId_fkey" FOREIGN KEY ("tagId") REFERENCES "Tag"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "TagTenant" ADD CONSTRAINT "TagTenant_tenantId_fkey" FOREIGN KEY ("tenantId") REFERENCES "Tenant"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "TagTenant" ADD CONSTRAINT "TagTenant_tagId_fkey" FOREIGN KEY ("tagId") REFERENCES "Tag"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "OnboardingFilter" ADD CONSTRAINT "OnboardingFilter_onboardingId_fkey" FOREIGN KEY ("onboardingId") REFERENCES "Onboarding"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "OnboardingStep" ADD CONSTRAINT "OnboardingStep_onboardingId_fkey" FOREIGN KEY ("onboardingId") REFERENCES "Onboarding"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "OnboardingSession" ADD CONSTRAINT "OnboardingSession_onboardingId_fkey" FOREIGN KEY ("onboardingId") REFERENCES "Onboarding"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "OnboardingSession" ADD CONSTRAINT "OnboardingSession_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "OnboardingSession" ADD CONSTRAINT "OnboardingSession_tenantId_fkey" FOREIGN KEY ("tenantId") REFERENCES "Tenant"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "OnboardingSessionAction" ADD CONSTRAINT "OnboardingSessionAction_onboardingSessionId_fkey" FOREIGN KEY ("onboardingSessionId") REFERENCES "OnboardingSession"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "OnboardingSessionFilterMatch" ADD CONSTRAINT "OnboardingSessionFilterMatch_onboardingFilterId_fkey" FOREIGN KEY ("onboardingFilterId") REFERENCES "OnboardingFilter"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "OnboardingSessionFilterMatch" ADD CONSTRAINT "OnboardingSessionFilterMatch_onboardingSessionId_fkey" FOREIGN KEY ("onboardingSessionId") REFERENCES "OnboardingSession"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "OnboardingSessionStep" ADD CONSTRAINT "OnboardingSessionStep_onboardingSessionId_fkey" FOREIGN KEY ("onboardingSessionId") REFERENCES "OnboardingSession"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "OnboardingSessionStep" ADD CONSTRAINT "OnboardingSessionStep_stepId_fkey" FOREIGN KEY ("stepId") REFERENCES "OnboardingStep"("id") ON DELETE CASCADE ON UPDATE CASCADE;
@@ -0,0 +1,2 @@
-- AlterTable
ALTER TABLE "EntityRelationship" ADD COLUMN "input" TEXT DEFAULT 'table';
@@ -0,0 +1,5 @@
-- DropIndex
DROP INDEX "EntityViewProperty_entityViewId_propertyId_key";
-- DropIndex
DROP INDEX "UserRole_userId_roleId_tenantId_key";
@@ -0,0 +1,2 @@
-- AlterTable
ALTER TABLE "Property" ADD COLUMN "showInCreate" BOOLEAN NOT NULL DEFAULT true;
@@ -0,0 +1,2 @@
-- AlterTable
ALTER TABLE "Property" ADD COLUMN "isReadOnly" BOOLEAN NOT NULL DEFAULT false;
@@ -0,0 +1,2 @@
-- DropIndex
DROP INDEX "Property_entityId_order_key";
@@ -0,0 +1,24 @@
/*
Warnings:
- You are about to drop the column `canComment` on the `Row` table. All the data in the column will be lost.
- You are about to drop the column `canDelete` on the `Row` table. All the data in the column will be lost.
- You are about to drop the column `canUpdate` on the `Row` table. All the data in the column will be lost.
- You are about to drop the column `visibility` on the `Row` table. All the data in the column will be lost.
*/
-- AlterTable
ALTER TABLE "EntityTag" ADD COLUMN "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP;
-- AlterTable
ALTER TABLE "Row" DROP COLUMN "canComment",
DROP COLUMN "canDelete",
DROP COLUMN "canUpdate",
DROP COLUMN "visibility";
-- AlterTable
ALTER TABLE "RowPermission" ADD COLUMN "access" TEXT NOT NULL DEFAULT 'view',
ADD COLUMN "public" BOOLEAN;
-- AlterTable
ALTER TABLE "RowTag" ADD COLUMN "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP;
@@ -0,0 +1,36 @@
/*
Warnings:
- You are about to drop the column `role` on the `AdminUser` table. All the data in the column will be lost.
*/
-- AlterTable
ALTER TABLE "AdminUser" DROP COLUMN "role";
-- AlterTable
ALTER TABLE "Tenant" ADD COLUMN "deactivatedReason" TEXT;
-- CreateTable
CREATE TABLE "TenantIpAddress" (
"id" TEXT NOT NULL,
"tenantId" TEXT NOT NULL,
"userId" TEXT,
"apiKeyId" TEXT,
"ip" TEXT NOT NULL,
"fromUrl" TEXT NOT NULL,
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT "TenantIpAddress_pkey" PRIMARY KEY ("id")
);
-- CreateIndex
CREATE UNIQUE INDEX "TenantIpAddress_tenantId_ip_userId_apiKeyId_key" ON "TenantIpAddress"("tenantId", "ip", "userId", "apiKeyId");
-- AddForeignKey
ALTER TABLE "TenantIpAddress" ADD CONSTRAINT "TenantIpAddress_tenantId_fkey" FOREIGN KEY ("tenantId") REFERENCES "Tenant"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "TenantIpAddress" ADD CONSTRAINT "TenantIpAddress_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "TenantIpAddress" ADD CONSTRAINT "TenantIpAddress_apiKeyId_fkey" FOREIGN KEY ("apiKeyId") REFERENCES "ApiKey"("id") ON DELETE CASCADE ON UPDATE CASCADE;
@@ -0,0 +1,34 @@
-- AlterTable
ALTER TABLE "AnalyticsEvent" ADD COLUMN "featureFlagId" TEXT;
-- CreateTable
CREATE TABLE "FeatureFlag" (
"id" TEXT NOT NULL,
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updatedAt" TIMESTAMP(3) NOT NULL,
"name" TEXT NOT NULL,
"description" TEXT NOT NULL,
"enabled" BOOLEAN NOT NULL DEFAULT false,
CONSTRAINT "FeatureFlag_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "FeatureFlagFilter" (
"id" TEXT NOT NULL,
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"featureFlagId" TEXT NOT NULL,
"type" TEXT NOT NULL,
"value" TEXT,
CONSTRAINT "FeatureFlagFilter_pkey" PRIMARY KEY ("id")
);
-- CreateIndex
CREATE UNIQUE INDEX "FeatureFlag_name_description_key" ON "FeatureFlag"("name", "description");
-- AddForeignKey
ALTER TABLE "AnalyticsEvent" ADD CONSTRAINT "AnalyticsEvent_featureFlagId_fkey" FOREIGN KEY ("featureFlagId") REFERENCES "FeatureFlag"("id") ON DELETE SET NULL ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "FeatureFlagFilter" ADD CONSTRAINT "FeatureFlagFilter_featureFlagId_fkey" FOREIGN KEY ("featureFlagId") REFERENCES "FeatureFlag"("id") ON DELETE CASCADE ON UPDATE CASCADE;
@@ -0,0 +1,45 @@
/*
Warnings:
- You are about to drop the `RowValueSelection` table. If the table is not empty, all the data it contains will be lost.
*/
-- DropForeignKey
ALTER TABLE "RowValueSelection" DROP CONSTRAINT "RowValueSelection_propertyOptionId_fkey";
-- DropForeignKey
ALTER TABLE "RowValueSelection" DROP CONSTRAINT "RowValueSelection_rowValueId_fkey";
-- AlterTable
ALTER TABLE "Property" ADD COLUMN "subtype" TEXT;
-- DropTable
DROP TABLE "RowValueSelection";
-- CreateTable
CREATE TABLE "RowValueMultiple" (
"id" TEXT NOT NULL,
"rowValueId" TEXT NOT NULL,
"order" INTEGER NOT NULL,
"value" TEXT NOT NULL,
CONSTRAINT "RowValueMultiple_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "RowValueRange" (
"rowValueId" TEXT NOT NULL,
"numberMin" DECIMAL(65,30),
"numberMax" DECIMAL(65,30),
"dateMin" TIMESTAMP(3),
"dateMax" TIMESTAMP(3)
);
-- CreateIndex
CREATE UNIQUE INDEX "RowValueRange_rowValueId_key" ON "RowValueRange"("rowValueId");
-- AddForeignKey
ALTER TABLE "RowValueMultiple" ADD CONSTRAINT "RowValueMultiple_rowValueId_fkey" FOREIGN KEY ("rowValueId") REFERENCES "RowValue"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "RowValueRange" ADD CONSTRAINT "RowValueRange_rowValueId_fkey" FOREIGN KEY ("rowValueId") REFERENCES "RowValue"("id") ON DELETE CASCADE ON UPDATE CASCADE;
@@ -0,0 +1,17 @@
-- AlterTable
ALTER TABLE "Row" ADD COLUMN "order" INTEGER NOT NULL DEFAULT 0;
-- CreateTable
CREATE TABLE "TenantSettingsRow" (
"tenantId" TEXT NOT NULL,
"rowId" TEXT NOT NULL
);
-- CreateIndex
CREATE UNIQUE INDEX "TenantSettingsRow_tenantId_key" ON "TenantSettingsRow"("tenantId");
-- AddForeignKey
ALTER TABLE "TenantSettingsRow" ADD CONSTRAINT "TenantSettingsRow_tenantId_fkey" FOREIGN KEY ("tenantId") REFERENCES "Tenant"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "TenantSettingsRow" ADD CONSTRAINT "TenantSettingsRow_rowId_fkey" FOREIGN KEY ("rowId") REFERENCES "Row"("id") ON DELETE CASCADE ON UPDATE CASCADE;
@@ -0,0 +1,80 @@
-- AlterTable
ALTER TABLE "EntityRelationship" ADD COLUMN "cascade" BOOLEAN NOT NULL DEFAULT false;
-- CreateTable
CREATE TABLE "PromptFlow" (
"id" TEXT NOT NULL,
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updatedAt" TIMESTAMP(3) NOT NULL,
"model" TEXT NOT NULL,
"title" TEXT NOT NULL,
"description" TEXT NOT NULL,
"actionTitle" TEXT,
"executionType" TEXT NOT NULL DEFAULT 'sequential',
CONSTRAINT "PromptFlow_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "PromptTemplate" (
"id" TEXT NOT NULL,
"flowId" TEXT NOT NULL,
"order" INTEGER NOT NULL,
"title" TEXT NOT NULL,
"template" TEXT NOT NULL,
"temperature" DECIMAL(65,30) NOT NULL,
CONSTRAINT "PromptTemplate_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "PromptFlowExecution" (
"id" TEXT NOT NULL,
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updatedAt" TIMESTAMP(3) NOT NULL,
"flowId" TEXT NOT NULL,
"userId" TEXT,
"tenantId" TEXT,
"status" TEXT NOT NULL,
"error" TEXT,
"startedAt" TIMESTAMP(3),
"completedAt" TIMESTAMP(3),
CONSTRAINT "PromptFlowExecution_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "PromptTemplateResult" (
"id" TEXT NOT NULL,
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updatedAt" TIMESTAMP(3) NOT NULL,
"flowExecutionId" TEXT NOT NULL,
"templateId" TEXT NOT NULL,
"order" INTEGER NOT NULL,
"status" TEXT NOT NULL,
"prompt" TEXT NOT NULL,
"response" TEXT,
"error" TEXT,
"startedAt" TIMESTAMP(3),
"completedAt" TIMESTAMP(3),
CONSTRAINT "PromptTemplateResult_pkey" PRIMARY KEY ("id")
);
-- AddForeignKey
ALTER TABLE "PromptTemplate" ADD CONSTRAINT "PromptTemplate_flowId_fkey" FOREIGN KEY ("flowId") REFERENCES "PromptFlow"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "PromptFlowExecution" ADD CONSTRAINT "PromptFlowExecution_flowId_fkey" FOREIGN KEY ("flowId") REFERENCES "PromptFlow"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "PromptFlowExecution" ADD CONSTRAINT "PromptFlowExecution_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "PromptFlowExecution" ADD CONSTRAINT "PromptFlowExecution_tenantId_fkey" FOREIGN KEY ("tenantId") REFERENCES "Tenant"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "PromptTemplateResult" ADD CONSTRAINT "PromptTemplateResult_flowExecutionId_fkey" FOREIGN KEY ("flowExecutionId") REFERENCES "PromptFlowExecution"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "PromptTemplateResult" ADD CONSTRAINT "PromptTemplateResult_templateId_fkey" FOREIGN KEY ("templateId") REFERENCES "PromptTemplate"("id") ON DELETE CASCADE ON UPDATE CASCADE;
@@ -0,0 +1,5 @@
-- AlterTable
ALTER TABLE "AnalyticsUniqueVisitor" ADD COLUMN "userId" TEXT;
-- AddForeignKey
ALTER TABLE "AnalyticsUniqueVisitor" ADD CONSTRAINT "AnalyticsUniqueVisitor_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE;
@@ -0,0 +1,5 @@
-- DropForeignKey
ALTER TABLE "AnalyticsUniqueVisitor" DROP CONSTRAINT "AnalyticsUniqueVisitor_userId_fkey";
-- AddForeignKey
ALTER TABLE "AnalyticsUniqueVisitor" ADD CONSTRAINT "AnalyticsUniqueVisitor_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE SET NULL ON UPDATE CASCADE;
@@ -0,0 +1,3 @@
-- AlterTable
ALTER TABLE "TenantSubscriptionProduct" ADD COLUMN "currentPeriodEnd" TIMESTAMP(3),
ADD COLUMN "currentPeriodStart" TIMESTAMP(3);
@@ -0,0 +1,21 @@
-- CreateTable
CREATE TABLE "MetricLog" (
"id" TEXT NOT NULL,
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"env" TEXT NOT NULL,
"type" TEXT NOT NULL,
"route" TEXT NOT NULL,
"url" TEXT NOT NULL,
"function" TEXT NOT NULL,
"duration" INTEGER NOT NULL,
"userId" TEXT,
"tenantId" TEXT,
CONSTRAINT "MetricLog_pkey" PRIMARY KEY ("id")
);
-- AddForeignKey
ALTER TABLE "MetricLog" ADD CONSTRAINT "MetricLog_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "MetricLog" ADD CONSTRAINT "MetricLog_tenantId_fkey" FOREIGN KEY ("tenantId") REFERENCES "Tenant"("id") ON DELETE CASCADE ON UPDATE CASCADE;
@@ -0,0 +1,6 @@
-- AlterTable
ALTER TABLE "AppConfiguration" ADD COLUMN "brandingFavicon" TEXT,
ADD COLUMN "brandingIcon" TEXT,
ADD COLUMN "brandingIconDarkMode" TEXT,
ADD COLUMN "brandingLogo" TEXT,
ADD COLUMN "brandingLogoDarkMode" TEXT;
@@ -0,0 +1,45 @@
/*
Warnings:
- You are about to drop the column `formula` on the `Property` table. All the data in the column will be lost.
*/
-- AlterTable
ALTER TABLE "AppConfiguration" ADD COLUMN "metricsEnabled" BOOLEAN NOT NULL DEFAULT false,
ADD COLUMN "metricsIgnoreUrls" TEXT,
ADD COLUMN "metricsLogToConsole" BOOLEAN NOT NULL DEFAULT false,
ADD COLUMN "metricsSaveToDatabase" BOOLEAN NOT NULL DEFAULT false;
-- AlterTable
ALTER TABLE "Property" DROP COLUMN "formula",
ADD COLUMN "formulaId" TEXT;
-- CreateTable
CREATE TABLE "Formula" (
"id" TEXT NOT NULL,
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"name" TEXT NOT NULL,
"description" TEXT,
"resultAs" TEXT NOT NULL,
"calculationTrigger" TEXT NOT NULL,
CONSTRAINT "Formula_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "FormulaComponent" (
"id" TEXT NOT NULL,
"formulaId" TEXT NOT NULL,
"order" INTEGER NOT NULL,
"name" TEXT,
"operator" TEXT,
"parenthesis" TEXT,
CONSTRAINT "FormulaComponent_pkey" PRIMARY KEY ("id")
);
-- AddForeignKey
ALTER TABLE "Property" ADD CONSTRAINT "Property_formulaId_fkey" FOREIGN KEY ("formulaId") REFERENCES "Formula"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "FormulaComponent" ADD CONSTRAINT "FormulaComponent_formulaId_fkey" FOREIGN KEY ("formulaId") REFERENCES "Formula"("id") ON DELETE CASCADE ON UPDATE CASCADE;
@@ -0,0 +1,52 @@
-- AlterTable
ALTER TABLE "Formula" ADD COLUMN "withLogs" BOOLEAN NOT NULL DEFAULT false;
-- AlterTable
ALTER TABLE "FormulaComponent" ADD COLUMN "value" TEXT;
-- CreateTable
CREATE TABLE "FormulaLog" (
"id" TEXT NOT NULL,
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"formulaId" TEXT NOT NULL,
"userId" TEXT,
"tenantId" TEXT,
"originalTrigger" TEXT,
"triggeredBy" TEXT NOT NULL,
"expression" TEXT NOT NULL,
"result" TEXT NOT NULL,
"duration" INTEGER NOT NULL DEFAULT 0,
"error" TEXT,
"rowValueId" TEXT,
CONSTRAINT "FormulaLog_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "FormulaComponentLog" (
"id" TEXT NOT NULL,
"order" INTEGER NOT NULL,
"name" TEXT,
"operator" TEXT,
"parenthesis" TEXT,
"value" TEXT NOT NULL,
"rowId" TEXT,
"formulaLogId" TEXT NOT NULL,
CONSTRAINT "FormulaComponentLog_pkey" PRIMARY KEY ("id")
);
-- AddForeignKey
ALTER TABLE "FormulaLog" ADD CONSTRAINT "FormulaLog_formulaId_fkey" FOREIGN KEY ("formulaId") REFERENCES "Formula"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "FormulaLog" ADD CONSTRAINT "FormulaLog_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "FormulaLog" ADD CONSTRAINT "FormulaLog_tenantId_fkey" FOREIGN KEY ("tenantId") REFERENCES "Tenant"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "FormulaComponentLog" ADD CONSTRAINT "FormulaComponentLog_rowId_fkey" FOREIGN KEY ("rowId") REFERENCES "Row"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "FormulaComponentLog" ADD CONSTRAINT "FormulaComponentLog_formulaLogId_fkey" FOREIGN KEY ("formulaLogId") REFERENCES "FormulaLog"("id") ON DELETE CASCADE ON UPDATE CASCADE;
@@ -0,0 +1,2 @@
-- AlterTable
ALTER TABLE "Entity" ADD COLUMN "onCreated" TEXT DEFAULT 'redirectToOverview';
@@ -0,0 +1,26 @@
/*
Warnings:
- You are about to drop the column `name` on the `FormulaComponent` table. All the data in the column will be lost.
- You are about to drop the column `operator` on the `FormulaComponent` table. All the data in the column will be lost.
- You are about to drop the column `parenthesis` on the `FormulaComponent` table. All the data in the column will be lost.
- You are about to drop the column `name` on the `FormulaComponentLog` table. All the data in the column will be lost.
- You are about to drop the column `operator` on the `FormulaComponentLog` table. All the data in the column will be lost.
- You are about to drop the column `parenthesis` on the `FormulaComponentLog` table. All the data in the column will be lost.
- Added the required column `type` to the `FormulaComponent` table without a default value. This is not possible if the table is not empty.
- Made the column `value` on table `FormulaComponent` required. This step will fail if there are existing NULL values in that column.
- Added the required column `type` to the `FormulaComponentLog` table without a default value. This is not possible if the table is not empty.
*/
-- AlterTable
ALTER TABLE "FormulaComponent" DROP COLUMN "name",
DROP COLUMN "operator",
DROP COLUMN "parenthesis",
ADD COLUMN "type" TEXT NOT NULL,
ALTER COLUMN "value" SET NOT NULL;
-- AlterTable
ALTER TABLE "FormulaComponentLog" DROP COLUMN "name",
DROP COLUMN "operator",
DROP COLUMN "parenthesis",
ADD COLUMN "type" TEXT NOT NULL;
@@ -0,0 +1,67 @@
/*
Warnings:
- You are about to drop the column `input` on the `EntityRelationship` table. All the data in the column will be lost.
- You are about to drop the column `multiple` on the `EntityRelationship` table. All the data in the column will be lost.
- You are about to drop the column `columns` on the `EntityView` table. All the data in the column will be lost.
- A unique constraint covering the columns `[parentId,childId,title]` on the table `EntityRelationship` will be added. If there are existing duplicate values, this will fail.
*/
-- DropIndex
DROP INDEX "EntityRelationship_parentId_childId_key";
-- AlterTable
ALTER TABLE "EntityRelationship" DROP COLUMN "input",
DROP COLUMN "multiple",
ADD COLUMN "order" INTEGER,
ADD COLUMN "title" TEXT,
ADD COLUMN "type" TEXT NOT NULL DEFAULT 'one-to-many',
ALTER COLUMN "required" SET DEFAULT false;
-- AlterTable
ALTER TABLE "EntityView" DROP COLUMN "columns",
ADD COLUMN "gridColumns" INTEGER DEFAULT 5,
ADD COLUMN "gridColumns2xl" INTEGER DEFAULT 6,
ADD COLUMN "gridColumnsLg" INTEGER DEFAULT 4,
ADD COLUMN "gridColumnsMd" INTEGER DEFAULT 3,
ADD COLUMN "gridColumnsSm" INTEGER DEFAULT 2,
ADD COLUMN "gridColumnsXl" INTEGER DEFAULT 5,
ADD COLUMN "gridGap" TEXT DEFAULT 'sm';
-- CreateTable
CREATE TABLE "EntityGroup" (
"id" TEXT NOT NULL,
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"order" INTEGER NOT NULL,
"slug" TEXT NOT NULL,
"title" TEXT NOT NULL,
"icon" TEXT NOT NULL,
"collapsible" BOOLEAN NOT NULL,
"section" TEXT,
CONSTRAINT "EntityGroup_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "_EntityToEntityGroup" (
"A" TEXT NOT NULL,
"B" TEXT NOT NULL
);
-- CreateIndex
CREATE UNIQUE INDEX "EntityGroup_slug_key" ON "EntityGroup"("slug");
-- CreateIndex
CREATE UNIQUE INDEX "_EntityToEntityGroup_AB_unique" ON "_EntityToEntityGroup"("A", "B");
-- CreateIndex
CREATE INDEX "_EntityToEntityGroup_B_index" ON "_EntityToEntityGroup"("B");
-- CreateIndex
CREATE UNIQUE INDEX "EntityRelationship_parentId_childId_title_key" ON "EntityRelationship"("parentId", "childId", "title");
-- AddForeignKey
ALTER TABLE "_EntityToEntityGroup" ADD CONSTRAINT "_EntityToEntityGroup_A_fkey" FOREIGN KEY ("A") REFERENCES "Entity"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "_EntityToEntityGroup" ADD CONSTRAINT "_EntityToEntityGroup_B_fkey" FOREIGN KEY ("B") REFERENCES "EntityGroup"("id") ON DELETE CASCADE ON UPDATE CASCADE;
@@ -0,0 +1,202 @@
-- DropForeignKey
ALTER TABLE "PromptTemplateResult" DROP CONSTRAINT "PromptTemplateResult_flowExecutionId_fkey";
-- DropForeignKey
ALTER TABLE "PromptTemplateResult" DROP CONSTRAINT "PromptTemplateResult_templateId_fkey";
-- AlterTable
ALTER TABLE "Entity" ADD COLUMN "promptFlowGroupId" TEXT;
-- AlterTable
ALTER TABLE "PromptFlow" ADD COLUMN "promptFlowGroupId" TEXT,
ADD COLUMN "stream" BOOLEAN NOT NULL DEFAULT false;
-- AlterTable
ALTER TABLE "PromptTemplate" ADD COLUMN "generations" INTEGER,
ADD COLUMN "maxTokens" INTEGER;
-- AlterTable
ALTER TABLE "PromptTemplateResult" ALTER COLUMN "templateId" DROP NOT NULL;
-- CreateTable
CREATE TABLE "PromptFlowGroup" (
"id" TEXT NOT NULL,
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"order" INTEGER NOT NULL,
"title" TEXT NOT NULL,
"description" TEXT NOT NULL,
CONSTRAINT "PromptFlowGroup_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "PromptFlowGroupTemplate" (
"id" TEXT NOT NULL,
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"order" INTEGER NOT NULL,
"title" TEXT NOT NULL,
"promptFlowGroupId" TEXT NOT NULL,
CONSTRAINT "PromptFlowGroupTemplate_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "PromptFlowGroupEntity" (
"entityId" TEXT NOT NULL,
"promptFlowGroupId" TEXT NOT NULL,
CONSTRAINT "PromptFlowGroupEntity_pkey" PRIMARY KEY ("entityId","promptFlowGroupId")
);
-- CreateTable
CREATE TABLE "TenantType" (
"id" TEXT NOT NULL,
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updatedAt" TIMESTAMP(3) NOT NULL,
"title" TEXT NOT NULL,
"titlePlural" TEXT NOT NULL,
"description" TEXT,
"isDefault" BOOLEAN NOT NULL DEFAULT false,
CONSTRAINT "TenantType_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "TenantTypeEntity" (
"id" TEXT NOT NULL,
"tenantTypeId" TEXT,
"entityId" TEXT NOT NULL,
"enabled" BOOLEAN NOT NULL,
CONSTRAINT "TenantTypeEntity_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "TenantTypeRelationship" (
"id" TEXT NOT NULL,
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updatedAt" TIMESTAMP(3) NOT NULL,
"canCreate" BOOLEAN NOT NULL DEFAULT false,
"fromTypeId" TEXT,
"toTypeId" TEXT,
CONSTRAINT "TenantTypeRelationship_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "TenantRelationship" (
"id" TEXT NOT NULL,
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updatedAt" TIMESTAMP(3) NOT NULL,
"tenantTypeRelationshipId" TEXT NOT NULL,
"fromTenantId" TEXT NOT NULL,
"toTenantId" TEXT NOT NULL,
"createdByUserId" TEXT,
CONSTRAINT "TenantRelationship_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "_TenantToTenantType" (
"A" TEXT NOT NULL,
"B" TEXT NOT NULL
);
-- CreateTable
CREATE TABLE "_PermissionToTenantTypeRelationship" (
"A" TEXT NOT NULL,
"B" TEXT NOT NULL
);
-- CreateTable
CREATE TABLE "_SubscriptionProductToTenantType" (
"A" TEXT NOT NULL,
"B" TEXT NOT NULL
);
-- CreateIndex
CREATE UNIQUE INDEX "TenantType_title_key" ON "TenantType"("title");
-- CreateIndex
CREATE UNIQUE INDEX "TenantTypeRelationship_fromTypeId_toTypeId_key" ON "TenantTypeRelationship"("fromTypeId", "toTypeId");
-- CreateIndex
CREATE UNIQUE INDEX "TenantRelationship_fromTenantId_toTenantId_key" ON "TenantRelationship"("fromTenantId", "toTenantId");
-- CreateIndex
CREATE UNIQUE INDEX "_TenantToTenantType_AB_unique" ON "_TenantToTenantType"("A", "B");
-- CreateIndex
CREATE INDEX "_TenantToTenantType_B_index" ON "_TenantToTenantType"("B");
-- CreateIndex
CREATE UNIQUE INDEX "_PermissionToTenantTypeRelationship_AB_unique" ON "_PermissionToTenantTypeRelationship"("A", "B");
-- CreateIndex
CREATE INDEX "_PermissionToTenantTypeRelationship_B_index" ON "_PermissionToTenantTypeRelationship"("B");
-- CreateIndex
CREATE UNIQUE INDEX "_SubscriptionProductToTenantType_AB_unique" ON "_SubscriptionProductToTenantType"("A", "B");
-- CreateIndex
CREATE INDEX "_SubscriptionProductToTenantType_B_index" ON "_SubscriptionProductToTenantType"("B");
-- AddForeignKey
ALTER TABLE "PromptFlowGroupTemplate" ADD CONSTRAINT "PromptFlowGroupTemplate_promptFlowGroupId_fkey" FOREIGN KEY ("promptFlowGroupId") REFERENCES "PromptFlowGroup"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "PromptFlowGroupEntity" ADD CONSTRAINT "PromptFlowGroupEntity_entityId_fkey" FOREIGN KEY ("entityId") REFERENCES "Entity"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "PromptFlowGroupEntity" ADD CONSTRAINT "PromptFlowGroupEntity_promptFlowGroupId_fkey" FOREIGN KEY ("promptFlowGroupId") REFERENCES "PromptFlowGroup"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "PromptFlow" ADD CONSTRAINT "PromptFlow_promptFlowGroupId_fkey" FOREIGN KEY ("promptFlowGroupId") REFERENCES "PromptFlowGroup"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "PromptTemplateResult" ADD CONSTRAINT "PromptTemplateResult_flowExecutionId_fkey" FOREIGN KEY ("flowExecutionId") REFERENCES "PromptFlowExecution"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "PromptTemplateResult" ADD CONSTRAINT "PromptTemplateResult_templateId_fkey" FOREIGN KEY ("templateId") REFERENCES "PromptTemplate"("id") ON DELETE SET NULL ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "TenantTypeEntity" ADD CONSTRAINT "TenantTypeEntity_tenantTypeId_fkey" FOREIGN KEY ("tenantTypeId") REFERENCES "TenantType"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "TenantTypeEntity" ADD CONSTRAINT "TenantTypeEntity_entityId_fkey" FOREIGN KEY ("entityId") REFERENCES "Entity"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "TenantTypeRelationship" ADD CONSTRAINT "TenantTypeRelationship_fromTypeId_fkey" FOREIGN KEY ("fromTypeId") REFERENCES "TenantType"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "TenantTypeRelationship" ADD CONSTRAINT "TenantTypeRelationship_toTypeId_fkey" FOREIGN KEY ("toTypeId") REFERENCES "TenantType"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "TenantRelationship" ADD CONSTRAINT "TenantRelationship_tenantTypeRelationshipId_fkey" FOREIGN KEY ("tenantTypeRelationshipId") REFERENCES "TenantTypeRelationship"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "TenantRelationship" ADD CONSTRAINT "TenantRelationship_fromTenantId_fkey" FOREIGN KEY ("fromTenantId") REFERENCES "Tenant"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "TenantRelationship" ADD CONSTRAINT "TenantRelationship_toTenantId_fkey" FOREIGN KEY ("toTenantId") REFERENCES "Tenant"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "TenantRelationship" ADD CONSTRAINT "TenantRelationship_createdByUserId_fkey" FOREIGN KEY ("createdByUserId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "_TenantToTenantType" ADD CONSTRAINT "_TenantToTenantType_A_fkey" FOREIGN KEY ("A") REFERENCES "Tenant"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "_TenantToTenantType" ADD CONSTRAINT "_TenantToTenantType_B_fkey" FOREIGN KEY ("B") REFERENCES "TenantType"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "_PermissionToTenantTypeRelationship" ADD CONSTRAINT "_PermissionToTenantTypeRelationship_A_fkey" FOREIGN KEY ("A") REFERENCES "Permission"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "_PermissionToTenantTypeRelationship" ADD CONSTRAINT "_PermissionToTenantTypeRelationship_B_fkey" FOREIGN KEY ("B") REFERENCES "TenantTypeRelationship"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "_SubscriptionProductToTenantType" ADD CONSTRAINT "_SubscriptionProductToTenantType_A_fkey" FOREIGN KEY ("A") REFERENCES "SubscriptionProduct"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "_SubscriptionProductToTenantType" ADD CONSTRAINT "_SubscriptionProductToTenantType_B_fkey" FOREIGN KEY ("B") REFERENCES "TenantType"("id") ON DELETE CASCADE ON UPDATE CASCADE;
@@ -0,0 +1,3 @@
-- AlterTable
ALTER TABLE "PromptFlowExecution" ADD COLUMN "duration" INTEGER,
ADD COLUMN "model" TEXT;
@@ -0,0 +1,2 @@
-- AlterTable
ALTER TABLE "EntityView" ADD COLUMN "isSystem" BOOLEAN NOT NULL DEFAULT false;
@@ -0,0 +1,42 @@
/*
Warnings:
- You are about to drop the `_EntityToEntityGroup` table. If the table is not empty, all the data it contains will be lost.
*/
-- DropForeignKey
ALTER TABLE "_EntityToEntityGroup" DROP CONSTRAINT "_EntityToEntityGroup_A_fkey";
-- DropForeignKey
ALTER TABLE "_EntityToEntityGroup" DROP CONSTRAINT "_EntityToEntityGroup_B_fkey";
-- AlterTable
ALTER TABLE "Entity" ADD COLUMN "onEdit" TEXT DEFAULT 'editRoute';
-- AlterTable
ALTER TABLE "EntityRelationship" ADD COLUMN "entityViewId" TEXT;
-- DropTable
DROP TABLE "_EntityToEntityGroup";
-- CreateTable
CREATE TABLE "EntityGroupEntity" (
"id" TEXT NOT NULL,
"entityGroupId" TEXT NOT NULL,
"entityId" TEXT NOT NULL,
"allViewId" TEXT,
CONSTRAINT "EntityGroupEntity_pkey" PRIMARY KEY ("id")
);
-- AddForeignKey
ALTER TABLE "EntityRelationship" ADD CONSTRAINT "EntityRelationship_entityViewId_fkey" FOREIGN KEY ("entityViewId") REFERENCES "EntityView"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "EntityGroupEntity" ADD CONSTRAINT "EntityGroupEntity_entityGroupId_fkey" FOREIGN KEY ("entityGroupId") REFERENCES "EntityGroup"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "EntityGroupEntity" ADD CONSTRAINT "EntityGroupEntity_entityId_fkey" FOREIGN KEY ("entityId") REFERENCES "Entity"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "EntityGroupEntity" ADD CONSTRAINT "EntityGroupEntity_allViewId_fkey" FOREIGN KEY ("allViewId") REFERENCES "EntityView"("id") ON DELETE CASCADE ON UPDATE CASCADE;
@@ -0,0 +1,2 @@
-- AlterTable
ALTER TABLE "EntityRelationship" ADD COLUMN "readOnly" BOOLEAN NOT NULL DEFAULT false;
@@ -0,0 +1,24 @@
/*
Warnings:
- A unique constraint covering the columns `[entityId,name,tenantId]` on the table `Property` will be added. If there are existing duplicate values, this will fail.
- A unique constraint covering the columns `[entityId,title,tenantId]` on the table `Property` will be added. If there are existing duplicate values, this will fail.
*/
-- DropIndex
DROP INDEX "Property_entityId_name_key";
-- DropIndex
DROP INDEX "Property_entityId_title_key";
-- AlterTable
ALTER TABLE "Property" ADD COLUMN "tenantId" TEXT;
-- CreateIndex
CREATE UNIQUE INDEX "Property_entityId_name_tenantId_key" ON "Property"("entityId", "name", "tenantId");
-- CreateIndex
CREATE UNIQUE INDEX "Property_entityId_title_tenantId_key" ON "Property"("entityId", "title", "tenantId");
-- AddForeignKey
ALTER TABLE "Property" ADD CONSTRAINT "Property_tenantId_fkey" FOREIGN KEY ("tenantId") REFERENCES "Tenant"("id") ON DELETE SET NULL ON UPDATE CASCADE;
@@ -0,0 +1,186 @@
/*
Warnings:
- You are about to drop the `BlogAuthor` table. If the table is not empty, all the data it contains will be lost.
*/
-- DropForeignKey
ALTER TABLE "BlogPost" DROP CONSTRAINT "BlogPost_authorId_fkey";
-- AlterTable
ALTER TABLE "BlogPost" ADD COLUMN "contentType" TEXT NOT NULL DEFAULT 'markdown',
ALTER COLUMN "authorId" DROP NOT NULL,
ALTER COLUMN "categoryId" DROP NOT NULL;
-- DropTable
DROP TABLE "BlogAuthor";
-- CreateTable
CREATE TABLE "KnowledgeBase" (
"id" TEXT NOT NULL,
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updatedAt" TIMESTAMP(3) NOT NULL,
"slug" TEXT NOT NULL,
"title" TEXT NOT NULL,
"description" TEXT NOT NULL,
"defaultLanguage" TEXT NOT NULL,
"layout" TEXT NOT NULL,
"color" INTEGER NOT NULL,
"enabled" BOOLEAN NOT NULL,
"languages" TEXT NOT NULL,
"links" TEXT NOT NULL,
"logo" TEXT NOT NULL,
"seoImage" TEXT NOT NULL,
CONSTRAINT "KnowledgeBase_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "KnowledgeBaseCategory" (
"id" TEXT NOT NULL,
"knowledgeBaseId" TEXT NOT NULL,
"slug" TEXT NOT NULL,
"order" INTEGER NOT NULL,
"title" TEXT NOT NULL,
"description" TEXT NOT NULL,
"icon" TEXT NOT NULL,
"language" TEXT NOT NULL,
"seoImage" TEXT NOT NULL,
CONSTRAINT "KnowledgeBaseCategory_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "KnowledgeBaseCategorySection" (
"id" TEXT NOT NULL,
"categoryId" TEXT NOT NULL,
"order" INTEGER NOT NULL,
"title" TEXT NOT NULL,
"description" TEXT NOT NULL,
CONSTRAINT "KnowledgeBaseCategorySection_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "KnowledgeBaseArticle" (
"id" TEXT NOT NULL,
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updatedAt" TIMESTAMP(3),
"knowledgeBaseId" TEXT NOT NULL,
"categoryId" TEXT,
"sectionId" TEXT,
"slug" TEXT NOT NULL,
"title" TEXT NOT NULL,
"description" TEXT NOT NULL,
"order" INTEGER NOT NULL,
"contentDraft" TEXT NOT NULL,
"contentPublished" TEXT NOT NULL,
"contentType" TEXT NOT NULL,
"language" TEXT NOT NULL,
"featuredOrder" INTEGER,
"seoImage" TEXT NOT NULL,
"publishedAt" TIMESTAMP(3),
"relatedInArticleId" TEXT,
"createdByUserId" TEXT,
CONSTRAINT "KnowledgeBaseArticle_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "KnowledgeBaseRelatedArticle" (
"id" TEXT NOT NULL,
"articleId" TEXT NOT NULL,
"relatedArticleId" TEXT NOT NULL,
CONSTRAINT "KnowledgeBaseRelatedArticle_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "KnowledgeBaseViews" (
"id" TEXT NOT NULL,
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"knowledgeBaseId" TEXT NOT NULL,
"userAnalyticsId" TEXT NOT NULL,
CONSTRAINT "KnowledgeBaseViews_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "KnowledgeBaseArticleViews" (
"knowledgeBaseArticleId" TEXT NOT NULL,
"userAnalyticsId" TEXT NOT NULL
);
-- CreateTable
CREATE TABLE "KnowledgeBaseArticleUpvotes" (
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"knowledgeBaseArticleId" TEXT NOT NULL,
"userAnalyticsId" TEXT NOT NULL
);
-- CreateTable
CREATE TABLE "KnowledgeBaseArticleDownvotes" (
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"knowledgeBaseArticleId" TEXT NOT NULL,
"userAnalyticsId" TEXT NOT NULL
);
-- CreateIndex
CREATE UNIQUE INDEX "KnowledgeBase_slug_key" ON "KnowledgeBase"("slug");
-- CreateIndex
CREATE UNIQUE INDEX "KnowledgeBaseCategory_knowledgeBaseId_slug_key" ON "KnowledgeBaseCategory"("knowledgeBaseId", "slug");
-- CreateIndex
CREATE UNIQUE INDEX "KnowledgeBaseArticle_knowledgeBaseId_slug_key" ON "KnowledgeBaseArticle"("knowledgeBaseId", "slug");
-- CreateIndex
CREATE UNIQUE INDEX "KnowledgeBaseViews_knowledgeBaseId_userAnalyticsId_key" ON "KnowledgeBaseViews"("knowledgeBaseId", "userAnalyticsId");
-- CreateIndex
CREATE UNIQUE INDEX "KnowledgeBaseArticleViews_knowledgeBaseArticleId_userAnalyt_key" ON "KnowledgeBaseArticleViews"("knowledgeBaseArticleId", "userAnalyticsId");
-- CreateIndex
CREATE UNIQUE INDEX "KnowledgeBaseArticleUpvotes_knowledgeBaseArticleId_userAnal_key" ON "KnowledgeBaseArticleUpvotes"("knowledgeBaseArticleId", "userAnalyticsId");
-- CreateIndex
CREATE UNIQUE INDEX "KnowledgeBaseArticleDownvotes_knowledgeBaseArticleId_userAn_key" ON "KnowledgeBaseArticleDownvotes"("knowledgeBaseArticleId", "userAnalyticsId");
-- AddForeignKey
ALTER TABLE "BlogPost" ADD CONSTRAINT "BlogPost_authorId_fkey" FOREIGN KEY ("authorId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "KnowledgeBaseCategory" ADD CONSTRAINT "KnowledgeBaseCategory_knowledgeBaseId_fkey" FOREIGN KEY ("knowledgeBaseId") REFERENCES "KnowledgeBase"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "KnowledgeBaseCategorySection" ADD CONSTRAINT "KnowledgeBaseCategorySection_categoryId_fkey" FOREIGN KEY ("categoryId") REFERENCES "KnowledgeBaseCategory"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "KnowledgeBaseArticle" ADD CONSTRAINT "KnowledgeBaseArticle_knowledgeBaseId_fkey" FOREIGN KEY ("knowledgeBaseId") REFERENCES "KnowledgeBase"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "KnowledgeBaseArticle" ADD CONSTRAINT "KnowledgeBaseArticle_categoryId_fkey" FOREIGN KEY ("categoryId") REFERENCES "KnowledgeBaseCategory"("id") ON DELETE SET NULL ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "KnowledgeBaseArticle" ADD CONSTRAINT "KnowledgeBaseArticle_sectionId_fkey" FOREIGN KEY ("sectionId") REFERENCES "KnowledgeBaseCategorySection"("id") ON DELETE SET NULL ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "KnowledgeBaseArticle" ADD CONSTRAINT "KnowledgeBaseArticle_createdByUserId_fkey" FOREIGN KEY ("createdByUserId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "KnowledgeBaseRelatedArticle" ADD CONSTRAINT "KnowledgeBaseRelatedArticle_articleId_fkey" FOREIGN KEY ("articleId") REFERENCES "KnowledgeBaseArticle"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "KnowledgeBaseRelatedArticle" ADD CONSTRAINT "KnowledgeBaseRelatedArticle_relatedArticleId_fkey" FOREIGN KEY ("relatedArticleId") REFERENCES "KnowledgeBaseArticle"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "KnowledgeBaseViews" ADD CONSTRAINT "KnowledgeBaseViews_knowledgeBaseId_fkey" FOREIGN KEY ("knowledgeBaseId") REFERENCES "KnowledgeBase"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "KnowledgeBaseArticleViews" ADD CONSTRAINT "KnowledgeBaseArticleViews_knowledgeBaseArticleId_fkey" FOREIGN KEY ("knowledgeBaseArticleId") REFERENCES "KnowledgeBaseArticle"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "KnowledgeBaseArticleUpvotes" ADD CONSTRAINT "KnowledgeBaseArticleUpvotes_knowledgeBaseArticleId_fkey" FOREIGN KEY ("knowledgeBaseArticleId") REFERENCES "KnowledgeBaseArticle"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "KnowledgeBaseArticleDownvotes" ADD CONSTRAINT "KnowledgeBaseArticleDownvotes_knowledgeBaseArticleId_fkey" FOREIGN KEY ("knowledgeBaseArticleId") REFERENCES "KnowledgeBaseArticle"("id") ON DELETE CASCADE ON UPDATE CASCADE;
@@ -0,0 +1,8 @@
/*
Warnings:
- Added the required column `basePath` to the `KnowledgeBase` table without a default value. This is not possible if the table is not empty.
*/
-- AlterTable
ALTER TABLE "KnowledgeBase" ADD COLUMN "basePath" TEXT NOT NULL;
@@ -0,0 +1,3 @@
-- AlterTable
ALTER TABLE "KnowledgeBaseArticle" ADD COLUMN "contentPublishedAsText" TEXT NOT NULL DEFAULT '',
ALTER COLUMN "contentPublished" SET DEFAULT '';
@@ -0,0 +1,216 @@
/*
Warnings:
- You are about to drop the column `entityViewId` on the `EntityRelationship` table. All the data in the column will be lost.
*/
-- DropForeignKey
ALTER TABLE "EntityRelationship" DROP CONSTRAINT "EntityRelationship_entityViewId_fkey";
-- AlterTable
ALTER TABLE "EntityRelationship" DROP COLUMN "entityViewId",
ADD COLUMN "childEntityViewId" TEXT,
ADD COLUMN "parentEntityViewId" TEXT;
-- AlterTable
ALTER TABLE "PromptFlow" ADD COLUMN "inputEntityId" TEXT;
-- CreateTable
CREATE TABLE "PromptFlowInputVariable" (
"id" TEXT NOT NULL,
"promptFlowId" TEXT NOT NULL,
"type" TEXT NOT NULL,
"name" TEXT NOT NULL,
"title" TEXT NOT NULL,
"isRequired" BOOLEAN NOT NULL,
CONSTRAINT "PromptFlowInputVariable_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "PromptFlowOutput" (
"id" TEXT NOT NULL,
"promptFlowId" TEXT NOT NULL,
"type" TEXT NOT NULL,
"entityId" TEXT NOT NULL,
CONSTRAINT "PromptFlowOutput_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "PromptFlowOutputMapping" (
"id" TEXT NOT NULL,
"promptFlowOutputId" TEXT NOT NULL,
"promptTemplateId" TEXT NOT NULL,
"propertyId" TEXT NOT NULL,
CONSTRAINT "PromptFlowOutputMapping_pkey" PRIMARY KEY ("id")
);
-- CreateIndex
CREATE UNIQUE INDEX "PromptFlowOutputMapping_promptFlowOutputId_promptTemplateId_key" ON "PromptFlowOutputMapping"("promptFlowOutputId", "promptTemplateId", "propertyId");
-- CreateIndex
CREATE INDEX "entity_name" ON "Entity"("name");
-- CreateIndex
CREATE INDEX "entity_slug" ON "Entity"("slug");
-- CreateIndex
CREATE INDEX "parent_entity_relationship" ON "EntityRelationship"("parentId");
-- CreateIndex
CREATE INDEX "child_entity_relationship" ON "EntityRelationship"("childId");
-- CreateIndex
CREATE INDEX "parent_child_entity_relationship" ON "EntityRelationship"("parentId", "childId");
-- CreateIndex
CREATE INDEX "parent_child_entity_relationship_order" ON "EntityRelationship"("parentId", "childId", "order");
-- CreateIndex
CREATE INDEX "entity_tag" ON "EntityTag"("entityId");
-- CreateIndex
CREATE INDEX "entity_tag_value" ON "EntityTag"("entityId", "value");
-- CreateIndex
CREATE INDEX "entity_view" ON "EntityView"("entityId");
-- CreateIndex
CREATE INDEX "entity_view_name" ON "EntityView"("entityId", "name");
-- CreateIndex
CREATE INDEX "entity_view_filter" ON "EntityViewFilter"("entityViewId");
-- CreateIndex
CREATE INDEX "entity_view_filter_name" ON "EntityViewFilter"("entityViewId", "name");
-- CreateIndex
CREATE INDEX "entity_view_property" ON "EntityViewProperty"("entityViewId");
-- CreateIndex
CREATE INDEX "entity_view_property_name" ON "EntityViewProperty"("entityViewId", "name");
-- CreateIndex
CREATE INDEX "entity_view_sort" ON "EntityViewSort"("entityViewId");
-- CreateIndex
CREATE INDEX "entity_view_sort_name" ON "EntityViewSort"("entityViewId", "name");
-- CreateIndex
CREATE INDEX "entity_workflow_state" ON "EntityWorkflowState"("entityId");
-- CreateIndex
CREATE INDEX "entity_workflow_state_name" ON "EntityWorkflowState"("entityId", "name");
-- CreateIndex
CREATE INDEX "entity_workflow_step" ON "EntityWorkflowStep"("entityId");
-- CreateIndex
CREATE INDEX "entity_property" ON "Property"("entityId");
-- CreateIndex
CREATE INDEX "entity_property_name" ON "Property"("entityId", "name");
-- CreateIndex
CREATE INDEX "property_attribute" ON "PropertyAttribute"("propertyId");
-- CreateIndex
CREATE INDEX "property_attribute_name" ON "PropertyAttribute"("propertyId", "name");
-- CreateIndex
CREATE INDEX "property_option" ON "PropertyOption"("propertyId");
-- CreateIndex
CREATE INDEX "property_option_name" ON "PropertyOption"("propertyId", "name");
-- CreateIndex
CREATE INDEX "row_entity" ON "Row"("entityId");
-- CreateIndex
CREATE INDEX "row_entity_tenant" ON "Row"("entityId", "tenantId");
-- CreateIndex
CREATE INDEX "row_tenant" ON "Row"("tenantId");
-- CreateIndex
CREATE INDEX "row_comment_row" ON "RowComment"("rowId");
-- CreateIndex
CREATE INDEX "row_media_row_value" ON "RowMedia"("rowValueId");
-- CreateIndex
CREATE INDEX "row_media_row_value_name" ON "RowMedia"("rowValueId", "name");
-- CreateIndex
CREATE INDEX "row_permission_row" ON "RowPermission"("rowId");
-- CreateIndex
CREATE INDEX "row_permission_row_tenant" ON "RowPermission"("rowId", "tenantId");
-- CreateIndex
CREATE INDEX "row_permission_row_role" ON "RowPermission"("rowId", "roleId");
-- CreateIndex
CREATE INDEX "row_permission_row_group" ON "RowPermission"("rowId", "groupId");
-- CreateIndex
CREATE INDEX "row_permission_row_user" ON "RowPermission"("rowId", "userId");
-- CreateIndex
CREATE INDEX "parent_row_relationship" ON "RowRelationship"("parentId");
-- CreateIndex
CREATE INDEX "child_row_relationship" ON "RowRelationship"("childId");
-- CreateIndex
CREATE INDEX "parent_child_row_relationship" ON "RowRelationship"("parentId", "childId");
-- CreateIndex
CREATE INDEX "row_tag_row" ON "RowTag"("rowId");
-- CreateIndex
CREATE INDEX "row_tag_row_tag" ON "RowTag"("rowId", "tagId");
-- CreateIndex
CREATE INDEX "row_value_row" ON "RowValue"("rowId");
-- CreateIndex
CREATE INDEX "row_value_row_property" ON "RowValue"("rowId", "propertyId");
-- CreateIndex
CREATE INDEX "row_value_multiple_row_value" ON "RowValueMultiple"("rowValueId");
-- CreateIndex
CREATE INDEX "row_value_range_row_value" ON "RowValueRange"("rowValueId");
-- CreateIndex
CREATE INDEX "Tenant_slug_idx" ON "Tenant"("slug");
-- AddForeignKey
ALTER TABLE "EntityRelationship" ADD CONSTRAINT "EntityRelationship_childEntityViewId_fkey" FOREIGN KEY ("childEntityViewId") REFERENCES "EntityView"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "EntityRelationship" ADD CONSTRAINT "EntityRelationship_parentEntityViewId_fkey" FOREIGN KEY ("parentEntityViewId") REFERENCES "EntityView"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "PromptFlow" ADD CONSTRAINT "PromptFlow_inputEntityId_fkey" FOREIGN KEY ("inputEntityId") REFERENCES "Entity"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "PromptFlowInputVariable" ADD CONSTRAINT "PromptFlowInputVariable_promptFlowId_fkey" FOREIGN KEY ("promptFlowId") REFERENCES "PromptFlow"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "PromptFlowOutput" ADD CONSTRAINT "PromptFlowOutput_promptFlowId_fkey" FOREIGN KEY ("promptFlowId") REFERENCES "PromptFlow"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "PromptFlowOutput" ADD CONSTRAINT "PromptFlowOutput_entityId_fkey" FOREIGN KEY ("entityId") REFERENCES "Entity"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "PromptFlowOutputMapping" ADD CONSTRAINT "PromptFlowOutputMapping_promptFlowOutputId_fkey" FOREIGN KEY ("promptFlowOutputId") REFERENCES "PromptFlowOutput"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "PromptFlowOutputMapping" ADD CONSTRAINT "PromptFlowOutputMapping_promptTemplateId_fkey" FOREIGN KEY ("promptTemplateId") REFERENCES "PromptTemplate"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "PromptFlowOutputMapping" ADD CONSTRAINT "PromptFlowOutputMapping_propertyId_fkey" FOREIGN KEY ("propertyId") REFERENCES "Property"("id") ON DELETE CASCADE ON UPDATE CASCADE;
@@ -0,0 +1,17 @@
-- AlterTable
ALTER TABLE "Entity" ADD COLUMN "hasActivity" BOOLEAN NOT NULL DEFAULT true;
-- AlterTable
ALTER TABLE "Property" ADD COLUMN "canUpdate" BOOLEAN NOT NULL DEFAULT true;
-- CreateTable
CREATE TABLE "FileUploadProgress" (
"id" TEXT NOT NULL,
"fileName" TEXT NOT NULL,
"progressServer" INTEGER NOT NULL,
"progressStorage" INTEGER NOT NULL,
"url" TEXT,
"error" TEXT,
CONSTRAINT "FileUploadProgress_pkey" PRIMARY KEY ("id")
);
@@ -0,0 +1,5 @@
-- AlterTable
ALTER TABLE "Entity" ADD COLUMN "hasBulkDelete" BOOLEAN NOT NULL DEFAULT false;
-- AlterTable
ALTER TABLE "EntityRelationship" ADD COLUMN "hiddenIfEmpty" BOOLEAN NOT NULL DEFAULT false;
@@ -0,0 +1,36 @@
/*
Warnings:
- A unique constraint covering the columns `[tenantId,name]` on the table `BlogCategory` will be added. If there are existing duplicate values, this will fail.
- A unique constraint covering the columns `[tenantId,slug]` on the table `BlogPost` will be added. If there are existing duplicate values, this will fail.
*/
-- DropIndex
DROP INDEX "BlogCategory_name_key";
-- DropIndex
DROP INDEX "BlogPost_slug_key";
-- AlterTable
ALTER TABLE "BlogCategory" ADD COLUMN "tenantId" TEXT;
-- AlterTable
ALTER TABLE "BlogPost" ADD COLUMN "tenantId" TEXT;
-- AlterTable
ALTER TABLE "BlogTag" ADD COLUMN "tenantId" TEXT;
-- CreateIndex
CREATE UNIQUE INDEX "BlogCategory_tenantId_name_key" ON "BlogCategory"("tenantId", "name");
-- CreateIndex
CREATE UNIQUE INDEX "BlogPost_tenantId_slug_key" ON "BlogPost"("tenantId", "slug");
-- AddForeignKey
ALTER TABLE "BlogCategory" ADD CONSTRAINT "BlogCategory_tenantId_fkey" FOREIGN KEY ("tenantId") REFERENCES "Tenant"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "BlogTag" ADD CONSTRAINT "BlogTag_tenantId_fkey" FOREIGN KEY ("tenantId") REFERENCES "Tenant"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "BlogPost" ADD CONSTRAINT "BlogPost_tenantId_fkey" FOREIGN KEY ("tenantId") REFERENCES "Tenant"("id") ON DELETE CASCADE ON UPDATE CASCADE;
@@ -0,0 +1,199 @@
-- AlterTable
ALTER TABLE "EntityGroupEntity" ADD COLUMN "selectMax" INTEGER,
ADD COLUMN "selectMin" INTEGER;
-- AlterTable
ALTER TABLE "Row" ADD COLUMN "deletedAt" TIMESTAMP(3);
-- CreateTable
CREATE TABLE "Integration" (
"id" TEXT NOT NULL,
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updatedAt" TIMESTAMP(3) NOT NULL,
"type" TEXT NOT NULL,
"config" TEXT NOT NULL,
"tenantId" TEXT,
"isAdmin" BOOLEAN NOT NULL DEFAULT false,
CONSTRAINT "Integration_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "IntegrationObjectMap" (
"id" TEXT NOT NULL,
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updatedAt" TIMESTAMP(3) NOT NULL,
"integrationId" TEXT NOT NULL,
"fromName" TEXT NOT NULL,
"fromTitle" TEXT NOT NULL,
"toEntityId" TEXT NOT NULL,
CONSTRAINT "IntegrationObjectMap_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "IntegrationPropertyMap" (
"id" TEXT NOT NULL,
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updatedAt" TIMESTAMP(3) NOT NULL,
"objectMapId" TEXT NOT NULL,
"fromName" TEXT NOT NULL,
"fromTitle" TEXT NOT NULL,
"fromType" TEXT NOT NULL,
"type" TEXT NOT NULL,
"isUnique" BOOLEAN NOT NULL DEFAULT false,
"toPropertyId" TEXT NOT NULL,
CONSTRAINT "IntegrationPropertyMap_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "IntegrationSync" (
"id" TEXT NOT NULL,
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updatedAt" TIMESTAMP(3) NOT NULL,
"integrationId" TEXT NOT NULL,
"startedAt" TIMESTAMP(3),
"completedAt" TIMESTAMP(3),
"duration" INTEGER,
"status" TEXT NOT NULL,
"error" TEXT,
"createdByUserId" TEXT,
"createdByApiKeyId" TEXT,
CONSTRAINT "IntegrationSync_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "IntegrationSyncLog" (
"id" TEXT NOT NULL,
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"syncId" TEXT NOT NULL,
"type" TEXT NOT NULL,
"operation" TEXT NOT NULL,
"details" TEXT NOT NULL,
"entityId" TEXT NOT NULL,
"rowId" TEXT,
"relationshipId" TEXT,
CONSTRAINT "IntegrationSyncLog_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "IntegrationRow" (
"id" TEXT NOT NULL,
"objectMapId" TEXT NOT NULL,
"rowId" TEXT NOT NULL,
"externalId" TEXT NOT NULL,
CONSTRAINT "IntegrationRow_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "EntityGroupConfiguration" (
"id" TEXT NOT NULL,
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updatedAt" TIMESTAMP(3) NOT NULL,
"tenantId" TEXT,
"entityGroupId" TEXT NOT NULL,
"title" TEXT NOT NULL,
CONSTRAINT "EntityGroupConfiguration_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "EntityGroupConfigurationRow" (
"id" TEXT NOT NULL,
"entityGroupConfigurationId" TEXT NOT NULL,
"rowId" TEXT NOT NULL,
CONSTRAINT "EntityGroupConfigurationRow_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "FileChunk" (
"id" SERIAL NOT NULL,
"fileUploadId" TEXT NOT NULL,
"index" INTEGER NOT NULL,
"data" BYTEA NOT NULL,
CONSTRAINT "FileChunk_pkey" PRIMARY KEY ("id")
);
-- CreateIndex
CREATE UNIQUE INDEX "Integration_type_isAdmin_tenantId_key" ON "Integration"("type", "isAdmin", "tenantId");
-- CreateIndex
CREATE UNIQUE INDEX "EntityGroupConfigurationRow_entityGroupConfigurationId_rowI_key" ON "EntityGroupConfigurationRow"("entityGroupConfigurationId", "rowId");
-- CreateIndex
CREATE INDEX "group_createdByUserId" ON "Group"("createdByUserId");
-- CreateIndex
CREATE INDEX "row_deletedAt" ON "Row"("deletedAt");
-- CreateIndex
CREATE INDEX "row_entity_tenant_created_at" ON "Row"("entityId", "tenantId", "createdAt");
-- CreateIndex
CREATE INDEX "row_createdByUserId" ON "Row"("createdByUserId");
-- CreateIndex
CREATE INDEX "row_permission_public" ON "RowPermission"("public");
-- AddForeignKey
ALTER TABLE "Integration" ADD CONSTRAINT "Integration_tenantId_fkey" FOREIGN KEY ("tenantId") REFERENCES "Tenant"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "IntegrationObjectMap" ADD CONSTRAINT "IntegrationObjectMap_integrationId_fkey" FOREIGN KEY ("integrationId") REFERENCES "Integration"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "IntegrationObjectMap" ADD CONSTRAINT "IntegrationObjectMap_toEntityId_fkey" FOREIGN KEY ("toEntityId") REFERENCES "Entity"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "IntegrationPropertyMap" ADD CONSTRAINT "IntegrationPropertyMap_objectMapId_fkey" FOREIGN KEY ("objectMapId") REFERENCES "IntegrationObjectMap"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "IntegrationPropertyMap" ADD CONSTRAINT "IntegrationPropertyMap_toPropertyId_fkey" FOREIGN KEY ("toPropertyId") REFERENCES "Property"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "IntegrationSync" ADD CONSTRAINT "IntegrationSync_integrationId_fkey" FOREIGN KEY ("integrationId") REFERENCES "Integration"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "IntegrationSync" ADD CONSTRAINT "IntegrationSync_createdByUserId_fkey" FOREIGN KEY ("createdByUserId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "IntegrationSync" ADD CONSTRAINT "IntegrationSync_createdByApiKeyId_fkey" FOREIGN KEY ("createdByApiKeyId") REFERENCES "ApiKey"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "IntegrationSyncLog" ADD CONSTRAINT "IntegrationSyncLog_syncId_fkey" FOREIGN KEY ("syncId") REFERENCES "IntegrationSync"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "IntegrationSyncLog" ADD CONSTRAINT "IntegrationSyncLog_entityId_fkey" FOREIGN KEY ("entityId") REFERENCES "Entity"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "IntegrationSyncLog" ADD CONSTRAINT "IntegrationSyncLog_rowId_fkey" FOREIGN KEY ("rowId") REFERENCES "Row"("id") ON DELETE SET NULL ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "IntegrationSyncLog" ADD CONSTRAINT "IntegrationSyncLog_relationshipId_fkey" FOREIGN KEY ("relationshipId") REFERENCES "RowRelationship"("id") ON DELETE SET NULL ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "IntegrationRow" ADD CONSTRAINT "IntegrationRow_objectMapId_fkey" FOREIGN KEY ("objectMapId") REFERENCES "IntegrationObjectMap"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "IntegrationRow" ADD CONSTRAINT "IntegrationRow_rowId_fkey" FOREIGN KEY ("rowId") REFERENCES "Row"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "EntityGroupConfiguration" ADD CONSTRAINT "EntityGroupConfiguration_tenantId_fkey" FOREIGN KEY ("tenantId") REFERENCES "Tenant"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "EntityGroupConfiguration" ADD CONSTRAINT "EntityGroupConfiguration_entityGroupId_fkey" FOREIGN KEY ("entityGroupId") REFERENCES "EntityGroup"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "EntityGroupConfigurationRow" ADD CONSTRAINT "EntityGroupConfigurationRow_entityGroupConfigurationId_fkey" FOREIGN KEY ("entityGroupConfigurationId") REFERENCES "EntityGroupConfiguration"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "EntityGroupConfigurationRow" ADD CONSTRAINT "EntityGroupConfigurationRow_rowId_fkey" FOREIGN KEY ("rowId") REFERENCES "Row"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "FileChunk" ADD CONSTRAINT "FileChunk_fileUploadId_fkey" FOREIGN KEY ("fileUploadId") REFERENCES "FileUploadProgress"("id") ON DELETE CASCADE ON UPDATE CASCADE;
@@ -0,0 +1,5 @@
-- AlterTable
ALTER TABLE "Entity" ADD COLUMN "hasViews" BOOLEAN NOT NULL DEFAULT true;
-- AlterTable
ALTER TABLE "PromptFlow" ADD COLUMN "public" BOOLEAN NOT NULL DEFAULT true;
@@ -0,0 +1,2 @@
-- AlterTable
ALTER TABLE "RowRelationship" ADD COLUMN "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP;
@@ -0,0 +1,2 @@
-- AlterTable
ALTER TABLE "RowRelationship" ADD COLUMN "metadata" TEXT;
@@ -0,0 +1,20 @@
-- CreateTable
CREATE TABLE "EntityTemplate" (
"id" TEXT NOT NULL,
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"tenantId" TEXT,
"entityId" TEXT NOT NULL,
"title" TEXT NOT NULL,
"config" TEXT NOT NULL,
CONSTRAINT "EntityTemplate_pkey" PRIMARY KEY ("id")
);
-- CreateIndex
CREATE UNIQUE INDEX "EntityTemplate_tenantId_entityId_title_key" ON "EntityTemplate"("tenantId", "entityId", "title");
-- AddForeignKey
ALTER TABLE "EntityTemplate" ADD CONSTRAINT "EntityTemplate_tenantId_fkey" FOREIGN KEY ("tenantId") REFERENCES "Tenant"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "EntityTemplate" ADD CONSTRAINT "EntityTemplate_entityId_fkey" FOREIGN KEY ("entityId") REFERENCES "Entity"("id") ON DELETE CASCADE ON UPDATE CASCADE;
@@ -0,0 +1,94 @@
/*
Warnings:
- You are about to drop the column `hasWorkflow` on the `Entity` table. All the data in the column will be lost.
- You are about to drop the column `groupByWorkflowStates` on the `EntityView` table. All the data in the column will be lost.
- You are about to drop the column `workflowTransitionId` on the `Log` table. All the data in the column will be lost.
- You are about to drop the column `isDynamic` on the `Property` table. All the data in the column will be lost.
- You are about to drop the column `workflowStateId` on the `Row` table. All the data in the column will be lost.
- You are about to drop the `EntityWorkflowState` table. If the table is not empty, all the data it contains will be lost.
- You are about to drop the `EntityWorkflowStep` table. If the table is not empty, all the data it contains will be lost.
- You are about to drop the `EntityWorkflowStepAssignee` table. If the table is not empty, all the data it contains will be lost.
- You are about to drop the `RowWorkflowTransition` table. If the table is not empty, all the data it contains will be lost.
*/
-- DropForeignKey
ALTER TABLE "EntityWorkflowState" DROP CONSTRAINT "EntityWorkflowState_entityId_fkey";
-- DropForeignKey
ALTER TABLE "EntityWorkflowStep" DROP CONSTRAINT "EntityWorkflowStep_entityId_fkey";
-- DropForeignKey
ALTER TABLE "EntityWorkflowStep" DROP CONSTRAINT "EntityWorkflowStep_fromStateId_fkey";
-- DropForeignKey
ALTER TABLE "EntityWorkflowStep" DROP CONSTRAINT "EntityWorkflowStep_toStateId_fkey";
-- DropForeignKey
ALTER TABLE "EntityWorkflowStepAssignee" DROP CONSTRAINT "EntityWorkflowStepAssignee_groupId_fkey";
-- DropForeignKey
ALTER TABLE "EntityWorkflowStepAssignee" DROP CONSTRAINT "EntityWorkflowStepAssignee_roleId_fkey";
-- DropForeignKey
ALTER TABLE "EntityWorkflowStepAssignee" DROP CONSTRAINT "EntityWorkflowStepAssignee_stepId_fkey";
-- DropForeignKey
ALTER TABLE "EntityWorkflowStepAssignee" DROP CONSTRAINT "EntityWorkflowStepAssignee_tenantId_fkey";
-- DropForeignKey
ALTER TABLE "EntityWorkflowStepAssignee" DROP CONSTRAINT "EntityWorkflowStepAssignee_userId_fkey";
-- DropForeignKey
ALTER TABLE "Log" DROP CONSTRAINT "Log_workflowTransitionId_fkey";
-- DropForeignKey
ALTER TABLE "Row" DROP CONSTRAINT "Row_workflowStateId_fkey";
-- DropForeignKey
ALTER TABLE "RowWorkflowTransition" DROP CONSTRAINT "RowWorkflowTransition_byApiKeyId_fkey";
-- DropForeignKey
ALTER TABLE "RowWorkflowTransition" DROP CONSTRAINT "RowWorkflowTransition_byEmailId_fkey";
-- DropForeignKey
ALTER TABLE "RowWorkflowTransition" DROP CONSTRAINT "RowWorkflowTransition_byEventWebhookAttemptId_fkey";
-- DropForeignKey
ALTER TABLE "RowWorkflowTransition" DROP CONSTRAINT "RowWorkflowTransition_byUserId_fkey";
-- DropForeignKey
ALTER TABLE "RowWorkflowTransition" DROP CONSTRAINT "RowWorkflowTransition_rowId_fkey";
-- DropForeignKey
ALTER TABLE "RowWorkflowTransition" DROP CONSTRAINT "RowWorkflowTransition_workflowStepId_fkey";
-- AlterTable
ALTER TABLE "Entity" DROP COLUMN "hasWorkflow";
-- AlterTable
ALTER TABLE "EntityView" DROP COLUMN "groupByWorkflowStates";
-- AlterTable
ALTER TABLE "Log" DROP COLUMN "workflowTransitionId";
-- AlterTable
ALTER TABLE "Property" DROP COLUMN "isDynamic",
ALTER COLUMN "isDefault" SET DEFAULT false,
ALTER COLUMN "isRequired" SET DEFAULT false,
ALTER COLUMN "isHidden" SET DEFAULT false;
-- AlterTable
ALTER TABLE "Row" DROP COLUMN "workflowStateId";
-- DropTable
DROP TABLE "EntityWorkflowState";
-- DropTable
DROP TABLE "EntityWorkflowStep";
-- DropTable
DROP TABLE "EntityWorkflowStepAssignee";
-- DropTable
DROP TABLE "RowWorkflowTransition";
@@ -0,0 +1,187 @@
-- CreateTable
CREATE TABLE "Workflow" (
"id" TEXT NOT NULL,
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updatedAt" TIMESTAMP(3) NOT NULL,
"name" TEXT NOT NULL,
"description" TEXT NOT NULL,
"status" TEXT NOT NULL DEFAULT 'draft',
"tenantId" TEXT,
CONSTRAINT "Workflow_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "WorkflowBlock" (
"id" TEXT NOT NULL,
"workflowId" TEXT NOT NULL,
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updatedAt" TIMESTAMP(3) NOT NULL,
"type" TEXT NOT NULL,
"description" TEXT NOT NULL,
"isTrigger" BOOLEAN NOT NULL DEFAULT false,
"isBlock" BOOLEAN NOT NULL DEFAULT false,
"input" TEXT NOT NULL,
CONSTRAINT "WorkflowBlock_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "WorkflowBlockConditionGroup" (
"id" TEXT NOT NULL,
"workflowBlockId" TEXT NOT NULL,
"index" INTEGER NOT NULL,
"type" TEXT NOT NULL,
CONSTRAINT "WorkflowBlockConditionGroup_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "WorkflowBlockCondition" (
"id" TEXT NOT NULL,
"workflowBlockConditionGroupId" TEXT NOT NULL,
"index" INTEGER NOT NULL,
"variable" TEXT NOT NULL,
"operator" TEXT NOT NULL,
"value" TEXT NOT NULL,
CONSTRAINT "WorkflowBlockCondition_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "WorkflowBlockToBlock" (
"id" TEXT NOT NULL,
"fromBlockId" TEXT NOT NULL,
"toBlockId" TEXT NOT NULL,
"condition" TEXT,
CONSTRAINT "WorkflowBlockToBlock_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "WorkflowExecution" (
"id" TEXT NOT NULL,
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updatedAt" TIMESTAMP(3) NOT NULL,
"workflowId" TEXT NOT NULL,
"tenantId" TEXT,
"type" TEXT NOT NULL,
"status" TEXT NOT NULL,
"input" TEXT NOT NULL,
"output" TEXT,
"duration" INTEGER,
"endedAt" TIMESTAMP(3),
"error" TEXT,
"waitingBlockId" TEXT,
CONSTRAINT "WorkflowExecution_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "WorkflowInputExample" (
"id" TEXT NOT NULL,
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"workflowId" TEXT NOT NULL,
"title" TEXT NOT NULL,
"input" TEXT,
CONSTRAINT "WorkflowInputExample_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "WorkflowBlockExecution" (
"id" TEXT NOT NULL,
"workflowExecutionId" TEXT NOT NULL,
"workflowBlockId" TEXT NOT NULL,
"fromWorkflowBlockId" TEXT,
"status" TEXT NOT NULL,
"startedAt" TIMESTAMP(3) NOT NULL,
"input" TEXT,
"output" TEXT,
"duration" INTEGER,
"endedAt" TIMESTAMP(3),
"error" TEXT,
CONSTRAINT "WorkflowBlockExecution_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "WorkflowVariable" (
"id" TEXT NOT NULL,
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updatedAt" TIMESTAMP(3) NOT NULL,
"tenantId" TEXT,
"name" TEXT NOT NULL,
"value" TEXT NOT NULL,
CONSTRAINT "WorkflowVariable_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "WorkflowCredential" (
"id" TEXT NOT NULL,
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updatedAt" TIMESTAMP(3) NOT NULL,
"tenantId" TEXT,
"name" TEXT NOT NULL,
"value" TEXT NOT NULL,
CONSTRAINT "WorkflowCredential_pkey" PRIMARY KEY ("id")
);
-- CreateIndex
CREATE UNIQUE INDEX "WorkflowBlockToBlock_fromBlockId_toBlockId_key" ON "WorkflowBlockToBlock"("fromBlockId", "toBlockId");
-- CreateIndex
CREATE UNIQUE INDEX "WorkflowInputExample_workflowId_title_key" ON "WorkflowInputExample"("workflowId", "title");
-- CreateIndex
CREATE UNIQUE INDEX "WorkflowVariable_tenantId_name_key" ON "WorkflowVariable"("tenantId", "name");
-- CreateIndex
CREATE UNIQUE INDEX "WorkflowCredential_tenantId_name_key" ON "WorkflowCredential"("tenantId", "name");
-- AddForeignKey
ALTER TABLE "Workflow" ADD CONSTRAINT "Workflow_tenantId_fkey" FOREIGN KEY ("tenantId") REFERENCES "Tenant"("id") ON DELETE SET NULL ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "WorkflowBlock" ADD CONSTRAINT "WorkflowBlock_workflowId_fkey" FOREIGN KEY ("workflowId") REFERENCES "Workflow"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "WorkflowBlockConditionGroup" ADD CONSTRAINT "WorkflowBlockConditionGroup_workflowBlockId_fkey" FOREIGN KEY ("workflowBlockId") REFERENCES "WorkflowBlock"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "WorkflowBlockCondition" ADD CONSTRAINT "WorkflowBlockCondition_workflowBlockConditionGroupId_fkey" FOREIGN KEY ("workflowBlockConditionGroupId") REFERENCES "WorkflowBlockConditionGroup"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "WorkflowBlockToBlock" ADD CONSTRAINT "WorkflowBlockToBlock_fromBlockId_fkey" FOREIGN KEY ("fromBlockId") REFERENCES "WorkflowBlock"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "WorkflowBlockToBlock" ADD CONSTRAINT "WorkflowBlockToBlock_toBlockId_fkey" FOREIGN KEY ("toBlockId") REFERENCES "WorkflowBlock"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "WorkflowExecution" ADD CONSTRAINT "WorkflowExecution_workflowId_fkey" FOREIGN KEY ("workflowId") REFERENCES "Workflow"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "WorkflowExecution" ADD CONSTRAINT "WorkflowExecution_tenantId_fkey" FOREIGN KEY ("tenantId") REFERENCES "Tenant"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "WorkflowExecution" ADD CONSTRAINT "WorkflowExecution_waitingBlockId_fkey" FOREIGN KEY ("waitingBlockId") REFERENCES "WorkflowBlock"("id") ON DELETE SET NULL ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "WorkflowInputExample" ADD CONSTRAINT "WorkflowInputExample_workflowId_fkey" FOREIGN KEY ("workflowId") REFERENCES "Workflow"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "WorkflowBlockExecution" ADD CONSTRAINT "WorkflowBlockExecution_workflowExecutionId_fkey" FOREIGN KEY ("workflowExecutionId") REFERENCES "WorkflowExecution"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "WorkflowBlockExecution" ADD CONSTRAINT "WorkflowBlockExecution_workflowBlockId_fkey" FOREIGN KEY ("workflowBlockId") REFERENCES "WorkflowBlock"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "WorkflowBlockExecution" ADD CONSTRAINT "WorkflowBlockExecution_fromWorkflowBlockId_fkey" FOREIGN KEY ("fromWorkflowBlockId") REFERENCES "WorkflowBlock"("id") ON DELETE SET NULL ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "WorkflowVariable" ADD CONSTRAINT "WorkflowVariable_tenantId_fkey" FOREIGN KEY ("tenantId") REFERENCES "Tenant"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "WorkflowCredential" ADD CONSTRAINT "WorkflowCredential_tenantId_fkey" FOREIGN KEY ("tenantId") REFERENCES "Tenant"("id") ON DELETE CASCADE ON UPDATE CASCADE;
@@ -0,0 +1,6 @@
-- AlterTable
ALTER TABLE "ApiKeyLog" ADD COLUMN "duration" INTEGER,
ADD COLUMN "tenantId" TEXT;
-- AddForeignKey
ALTER TABLE "ApiKeyLog" ADD CONSTRAINT "ApiKeyLog_tenantId_fkey" FOREIGN KEY ("tenantId") REFERENCES "Tenant"("id") ON DELETE CASCADE ON UPDATE CASCADE;
@@ -0,0 +1,2 @@
-- AlterTable
ALTER TABLE "SubscriptionProduct" ADD COLUMN "billingAddressCollection" TEXT NOT NULL DEFAULT 'auto';
@@ -0,0 +1,11 @@
/*
Warnings:
- A unique constraint covering the columns `[tenantId,key]` on the table `ApiKey` will be added. If there are existing duplicate values, this will fail.
*/
-- CreateIndex
CREATE INDEX "ApiKey_key_idx" ON "ApiKey"("key");
-- CreateIndex
CREATE UNIQUE INDEX "ApiKey_tenantId_key_key" ON "ApiKey"("tenantId", "key");
@@ -0,0 +1,48 @@
-- DropForeignKey
ALTER TABLE "TenantUserInvitation" DROP CONSTRAINT "TenantUserInvitation_createdUserId_fkey";
-- AlterTable
ALTER TABLE "Event" ADD COLUMN "description" TEXT,
ADD COLUMN "userId" TEXT;
-- AlterTable
ALTER TABLE "TenantUserInvitation" ADD COLUMN "fromUserId" TEXT;
-- AlterTable
ALTER TABLE "Workflow" ADD COLUMN "createdByUserId" TEXT;
-- AlterTable
ALTER TABLE "WorkflowBlock" ADD COLUMN "appliesToAllTenants" BOOLEAN NOT NULL DEFAULT false;
-- AlterTable
ALTER TABLE "WorkflowCredential" ADD COLUMN "createdByUserId" TEXT,
ADD COLUMN "userId" TEXT;
-- AlterTable
ALTER TABLE "WorkflowExecution" ADD COLUMN "appliesToAllTenants" BOOLEAN NOT NULL DEFAULT false,
ADD COLUMN "createdByUserId" TEXT;
-- AlterTable
ALTER TABLE "WorkflowVariable" ADD COLUMN "createdByUserId" TEXT,
ADD COLUMN "userId" TEXT;
-- AddForeignKey
ALTER TABLE "TenantUserInvitation" ADD CONSTRAINT "TenantUserInvitation_fromUserId_fkey" FOREIGN KEY ("fromUserId") REFERENCES "User"("id") ON DELETE SET NULL ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "TenantUserInvitation" ADD CONSTRAINT "TenantUserInvitation_createdUserId_fkey" FOREIGN KEY ("createdUserId") REFERENCES "User"("id") ON DELETE SET NULL ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "Event" ADD CONSTRAINT "Event_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE SET NULL ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "Workflow" ADD CONSTRAINT "Workflow_createdByUserId_fkey" FOREIGN KEY ("createdByUserId") REFERENCES "User"("id") ON DELETE SET NULL ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "WorkflowExecution" ADD CONSTRAINT "WorkflowExecution_createdByUserId_fkey" FOREIGN KEY ("createdByUserId") REFERENCES "User"("id") ON DELETE SET NULL ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "WorkflowVariable" ADD CONSTRAINT "WorkflowVariable_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE SET NULL ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "WorkflowCredential" ADD CONSTRAINT "WorkflowCredential_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE SET NULL ON UPDATE CASCADE;
@@ -0,0 +1,11 @@
/*
Warnings:
- You are about to drop the column `appliesToAllTenants` on the `WorkflowBlock` table. All the data in the column will be lost.
*/
-- AlterTable
ALTER TABLE "Workflow" ADD COLUMN "appliesToAllTenants" BOOLEAN NOT NULL DEFAULT false;
-- AlterTable
ALTER TABLE "WorkflowBlock" DROP COLUMN "appliesToAllTenants";
@@ -0,0 +1,2 @@
-- AlterTable
ALTER TABLE "SubscriptionFeature" ADD COLUMN "badge" TEXT;
@@ -0,0 +1,5 @@
-- CreateIndex
CREATE INDEX "api_key_log_tenant" ON "ApiKeyLog"("tenantId");
-- CreateIndex
CREATE INDEX "api_key_log_tenant_created_at" ON "ApiKeyLog"("tenantId", "createdAt");
@@ -0,0 +1,26 @@
-- AlterTable
ALTER TABLE "FeatureFlag" ADD COLUMN "action" TEXT;
-- CreateTable
CREATE TABLE "IpAddress" (
"id" TEXT NOT NULL,
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updatedAt" TIMESTAMP(3) NOT NULL,
"ip" TEXT NOT NULL,
"provider" TEXT NOT NULL,
"type" TEXT NOT NULL,
"countryCode" TEXT NOT NULL,
"countryName" TEXT NOT NULL,
"regionCode" TEXT NOT NULL,
"regionName" TEXT NOT NULL,
"city" TEXT NOT NULL,
"zipCode" TEXT NOT NULL,
"latitude" DECIMAL(65,30),
"longitude" DECIMAL(65,30),
"metadata" TEXT NOT NULL,
CONSTRAINT "IpAddress_pkey" PRIMARY KEY ("id")
);
-- CreateIndex
CREATE UNIQUE INDEX "IpAddress_ip_key" ON "IpAddress"("ip");
@@ -0,0 +1,11 @@
/*
Warnings:
- You are about to drop the column `action` on the `FeatureFlag` table. All the data in the column will be lost.
*/
-- AlterTable
ALTER TABLE "FeatureFlag" DROP COLUMN "action";
-- AlterTable
ALTER TABLE "FeatureFlagFilter" ADD COLUMN "action" TEXT;
@@ -0,0 +1,3 @@
-- AlterTable
ALTER TABLE "RowValue" ADD COLUMN "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
ADD COLUMN "updatedAt" TIMESTAMP(3);
@@ -0,0 +1,2 @@
-- AlterTable
ALTER TABLE "SubscriptionFeature" ADD COLUMN "accumulate" BOOLEAN NOT NULL DEFAULT false;
@@ -0,0 +1,77 @@
-- AlterTable
ALTER TABLE "ApiKeyLog" ADD COLUMN "type" TEXT;
-- AlterTable
ALTER TABLE "BlogPost" ADD COLUMN "updatedAt" TIMESTAMP(3);
-- AlterTable
ALTER TABLE "Registration" ADD COLUMN "slug" TEXT;
-- AlterTable
ALTER TABLE "SubscriptionProduct" ADD COLUMN "canBuyAgain" BOOLEAN NOT NULL DEFAULT false,
ADD COLUMN "hasQuantity" BOOLEAN NOT NULL DEFAULT false;
-- CreateTable
CREATE TABLE "IpAddressLog" (
"id" TEXT NOT NULL,
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"ip" TEXT NOT NULL,
"url" TEXT NOT NULL,
"action" TEXT NOT NULL,
"description" TEXT NOT NULL,
"success" BOOLEAN NOT NULL,
"error" TEXT,
"metadata" TEXT,
"ipAddressId" TEXT,
CONSTRAINT "IpAddressLog_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "Credit" (
"id" TEXT NOT NULL,
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"tenantId" TEXT NOT NULL,
"userId" TEXT,
"amount" INTEGER NOT NULL,
"type" TEXT NOT NULL,
"objectId" TEXT,
CONSTRAINT "Credit_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "Feedback" (
"id" TEXT NOT NULL,
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"tenantId" TEXT,
"userId" TEXT,
"message" TEXT NOT NULL,
"fromUrl" TEXT NOT NULL,
CONSTRAINT "Feedback_pkey" PRIMARY KEY ("id")
);
-- CreateIndex
CREATE INDEX "Credit_tenantId_userId_idx" ON "Credit"("tenantId", "userId");
-- CreateIndex
CREATE INDEX "Credit_tenantId_createdAt_idx" ON "Credit"("tenantId", "createdAt");
-- CreateIndex
CREATE INDEX "api_key_log_tenant_type" ON "ApiKeyLog"("tenantId", "type");
-- AddForeignKey
ALTER TABLE "IpAddressLog" ADD CONSTRAINT "IpAddressLog_ipAddressId_fkey" FOREIGN KEY ("ipAddressId") REFERENCES "IpAddress"("id") ON DELETE SET NULL ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "Credit" ADD CONSTRAINT "Credit_tenantId_fkey" FOREIGN KEY ("tenantId") REFERENCES "Tenant"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "Credit" ADD CONSTRAINT "Credit_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE SET NULL ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "Feedback" ADD CONSTRAINT "Feedback_tenantId_fkey" FOREIGN KEY ("tenantId") REFERENCES "Tenant"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "Feedback" ADD CONSTRAINT "Feedback_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE;
@@ -0,0 +1,2 @@
-- AlterTable
ALTER TABLE "AppConfiguration" ADD COLUMN "theme" TEXT;
@@ -0,0 +1,313 @@
-- AlterTable
ALTER TABLE "AnalyticsEvent" ADD COLUMN "portalId" TEXT;
-- AlterTable
ALTER TABLE "AnalyticsPageView" ADD COLUMN "portalId" TEXT;
-- AlterTable
ALTER TABLE "AnalyticsUniqueVisitor" ADD COLUMN "portalId" TEXT;
-- CreateTable
CREATE TABLE "Portal" (
"id" TEXT NOT NULL,
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updatedAt" TIMESTAMP(3) NOT NULL,
"tenantId" TEXT,
"createdByUserId" TEXT,
"subdomain" TEXT NOT NULL,
"domain" TEXT,
"title" TEXT NOT NULL,
"isPublished" BOOLEAN NOT NULL DEFAULT false,
"stripeAccountId" TEXT,
"themeColor" TEXT,
"themeScheme" TEXT,
"seoTitle" TEXT,
"seoDescription" TEXT,
"seoImage" TEXT,
"seoThumbnail" TEXT,
"seoTwitterCreator" TEXT,
"seoTwitterSite" TEXT,
"seoKeywords" TEXT,
"authRequireEmailVerification" BOOLEAN NOT NULL DEFAULT false,
"authRequireOrganization" BOOLEAN NOT NULL DEFAULT true,
"authRequireName" BOOLEAN NOT NULL DEFAULT true,
"analyticsSimpleAnalytics" BOOLEAN NOT NULL DEFAULT false,
"analyticsPlausibleAnalytics" BOOLEAN NOT NULL DEFAULT false,
"analyticsGoogleAnalyticsTrackingId" TEXT,
"brandingLogo" TEXT,
"brandingLogoDarkMode" TEXT,
"brandingIcon" TEXT,
"brandingIconDarkMode" TEXT,
"brandingFavicon" TEXT,
"affiliatesRewardfulApiKey" TEXT,
"affiliatesRewardfulUrl" TEXT,
"metadata" JSONB,
CONSTRAINT "Portal_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "PortalUser" (
"id" TEXT NOT NULL,
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updatedAt" TIMESTAMP(3) NOT NULL,
"tenantId" TEXT,
"portalId" TEXT NOT NULL,
"email" TEXT NOT NULL,
"passwordHash" TEXT NOT NULL,
"firstName" TEXT NOT NULL,
"lastName" TEXT NOT NULL,
"avatar" TEXT,
"phone" TEXT,
"verifyToken" TEXT,
"githubId" TEXT,
"googleId" TEXT,
"locale" TEXT,
CONSTRAINT "PortalUser_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "PortalPage" (
"id" TEXT NOT NULL,
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updatedAt" TIMESTAMP(3) NOT NULL,
"portalId" TEXT NOT NULL,
"name" TEXT NOT NULL,
"title" TEXT NOT NULL,
"description" TEXT NOT NULL,
"content" TEXT NOT NULL,
CONSTRAINT "PortalPage_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "PortalUserRegistration" (
"id" TEXT NOT NULL,
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"portalId" TEXT NOT NULL,
"email" TEXT NOT NULL,
"firstName" TEXT NOT NULL,
"lastName" TEXT NOT NULL,
"slug" TEXT,
"token" TEXT NOT NULL,
"ipAddress" TEXT,
"company" TEXT,
"selectedSubscriptionPriceId" TEXT,
"createdPortalUserId" TEXT,
CONSTRAINT "PortalUserRegistration_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "PortalSubscriptionProduct" (
"id" TEXT NOT NULL,
"portalId" TEXT NOT NULL,
"stripeId" TEXT NOT NULL,
"order" INTEGER NOT NULL,
"title" TEXT NOT NULL,
"active" BOOLEAN NOT NULL,
"model" INTEGER NOT NULL,
"public" BOOLEAN NOT NULL,
"groupTitle" TEXT,
"groupDescription" TEXT,
"description" TEXT,
"badge" TEXT,
"billingAddressCollection" TEXT NOT NULL DEFAULT 'auto',
"hasQuantity" BOOLEAN NOT NULL DEFAULT false,
"canBuyAgain" BOOLEAN NOT NULL DEFAULT false,
CONSTRAINT "PortalSubscriptionProduct_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "PortalSubscriptionPrice" (
"id" TEXT NOT NULL,
"portalId" TEXT NOT NULL,
"subscriptionProductId" TEXT NOT NULL,
"stripeId" TEXT NOT NULL,
"type" INTEGER NOT NULL,
"billingPeriod" INTEGER NOT NULL,
"price" DECIMAL(65,30) NOT NULL,
"currency" TEXT NOT NULL,
"trialDays" INTEGER NOT NULL,
"active" BOOLEAN NOT NULL,
CONSTRAINT "PortalSubscriptionPrice_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "PortalSubscriptionFeature" (
"id" TEXT NOT NULL,
"portalId" TEXT NOT NULL,
"subscriptionProductId" TEXT NOT NULL,
"order" INTEGER NOT NULL,
"title" TEXT NOT NULL,
"name" TEXT NOT NULL,
"type" INTEGER NOT NULL,
"value" INTEGER NOT NULL,
"href" TEXT,
"badge" TEXT,
"accumulate" BOOLEAN NOT NULL DEFAULT false,
CONSTRAINT "PortalSubscriptionFeature_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "PortalUserSubscription" (
"id" TEXT NOT NULL,
"portalId" TEXT NOT NULL,
"portalUserId" TEXT NOT NULL,
"stripeCustomerId" TEXT,
CONSTRAINT "PortalUserSubscription_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "PortalUserSubscriptionProduct" (
"id" TEXT NOT NULL,
"portalId" TEXT NOT NULL,
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"portalUserSubscriptionId" TEXT NOT NULL,
"subscriptionProductId" TEXT NOT NULL,
"cancelledAt" TIMESTAMP(3),
"endsAt" TIMESTAMP(3),
"stripeSubscriptionId" TEXT,
"quantity" INTEGER,
"fromCheckoutSessionId" TEXT,
"currentPeriodStart" TIMESTAMP(3),
"currentPeriodEnd" TIMESTAMP(3),
CONSTRAINT "PortalUserSubscriptionProduct_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "PortalUserSubscriptionProductPrice" (
"id" TEXT NOT NULL,
"portalId" TEXT NOT NULL,
"portalUserSubscriptionProductId" TEXT NOT NULL,
"subscriptionPriceId" TEXT,
CONSTRAINT "PortalUserSubscriptionProductPrice_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "PortalCheckoutSessionStatus" (
"id" TEXT NOT NULL,
"portalId" TEXT NOT NULL,
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updatedAt" TIMESTAMP(3) NOT NULL,
"pending" BOOLEAN NOT NULL DEFAULT true,
"email" TEXT NOT NULL,
"fromUrl" TEXT NOT NULL,
"fromUserId" TEXT,
"createdUserId" TEXT
);
-- CreateIndex
CREATE UNIQUE INDEX "Portal_subdomain_key" ON "Portal"("subdomain");
-- CreateIndex
CREATE UNIQUE INDEX "Portal_domain_key" ON "Portal"("domain");
-- CreateIndex
CREATE INDEX "PortalUser_portalId_idx" ON "PortalUser"("portalId");
-- CreateIndex
CREATE UNIQUE INDEX "PortalUser_portalId_email_key" ON "PortalUser"("portalId", "email");
-- CreateIndex
CREATE UNIQUE INDEX "PortalUser_portalId_githubId_key" ON "PortalUser"("portalId", "githubId");
-- CreateIndex
CREATE UNIQUE INDEX "PortalUser_portalId_googleId_key" ON "PortalUser"("portalId", "googleId");
-- CreateIndex
CREATE UNIQUE INDEX "PortalPage_portalId_name_key" ON "PortalPage"("portalId", "name");
-- CreateIndex
CREATE UNIQUE INDEX "PortalUserRegistration_token_key" ON "PortalUserRegistration"("token");
-- CreateIndex
CREATE UNIQUE INDEX "PortalUserRegistration_createdPortalUserId_key" ON "PortalUserRegistration"("createdPortalUserId");
-- CreateIndex
CREATE UNIQUE INDEX "PortalUserRegistration_portalId_email_key" ON "PortalUserRegistration"("portalId", "email");
-- CreateIndex
CREATE UNIQUE INDEX "PortalUserSubscription_portalUserId_key" ON "PortalUserSubscription"("portalUserId");
-- CreateIndex
CREATE UNIQUE INDEX "PortalCheckoutSessionStatus_id_key" ON "PortalCheckoutSessionStatus"("id");
-- AddForeignKey
ALTER TABLE "AnalyticsUniqueVisitor" ADD CONSTRAINT "AnalyticsUniqueVisitor_portalId_fkey" FOREIGN KEY ("portalId") REFERENCES "Portal"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "AnalyticsPageView" ADD CONSTRAINT "AnalyticsPageView_portalId_fkey" FOREIGN KEY ("portalId") REFERENCES "Portal"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "AnalyticsEvent" ADD CONSTRAINT "AnalyticsEvent_portalId_fkey" FOREIGN KEY ("portalId") REFERENCES "Portal"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "Portal" ADD CONSTRAINT "Portal_tenantId_fkey" FOREIGN KEY ("tenantId") REFERENCES "Tenant"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "Portal" ADD CONSTRAINT "Portal_createdByUserId_fkey" FOREIGN KEY ("createdByUserId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "PortalUser" ADD CONSTRAINT "PortalUser_tenantId_fkey" FOREIGN KEY ("tenantId") REFERENCES "Tenant"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "PortalUser" ADD CONSTRAINT "PortalUser_portalId_fkey" FOREIGN KEY ("portalId") REFERENCES "Portal"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "PortalPage" ADD CONSTRAINT "PortalPage_portalId_fkey" FOREIGN KEY ("portalId") REFERENCES "Portal"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "PortalUserRegistration" ADD CONSTRAINT "PortalUserRegistration_portalId_fkey" FOREIGN KEY ("portalId") REFERENCES "Portal"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "PortalUserRegistration" ADD CONSTRAINT "PortalUserRegistration_createdPortalUserId_fkey" FOREIGN KEY ("createdPortalUserId") REFERENCES "PortalUser"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "PortalSubscriptionProduct" ADD CONSTRAINT "PortalSubscriptionProduct_portalId_fkey" FOREIGN KEY ("portalId") REFERENCES "Portal"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "PortalSubscriptionPrice" ADD CONSTRAINT "PortalSubscriptionPrice_portalId_fkey" FOREIGN KEY ("portalId") REFERENCES "Portal"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "PortalSubscriptionPrice" ADD CONSTRAINT "PortalSubscriptionPrice_subscriptionProductId_fkey" FOREIGN KEY ("subscriptionProductId") REFERENCES "PortalSubscriptionProduct"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "PortalSubscriptionFeature" ADD CONSTRAINT "PortalSubscriptionFeature_portalId_fkey" FOREIGN KEY ("portalId") REFERENCES "Portal"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "PortalSubscriptionFeature" ADD CONSTRAINT "PortalSubscriptionFeature_subscriptionProductId_fkey" FOREIGN KEY ("subscriptionProductId") REFERENCES "PortalSubscriptionProduct"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "PortalUserSubscription" ADD CONSTRAINT "PortalUserSubscription_portalId_fkey" FOREIGN KEY ("portalId") REFERENCES "Portal"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "PortalUserSubscription" ADD CONSTRAINT "PortalUserSubscription_portalUserId_fkey" FOREIGN KEY ("portalUserId") REFERENCES "PortalUser"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "PortalUserSubscriptionProduct" ADD CONSTRAINT "PortalUserSubscriptionProduct_portalId_fkey" FOREIGN KEY ("portalId") REFERENCES "Portal"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "PortalUserSubscriptionProduct" ADD CONSTRAINT "PortalUserSubscriptionProduct_portalUserSubscriptionId_fkey" FOREIGN KEY ("portalUserSubscriptionId") REFERENCES "PortalUserSubscription"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "PortalUserSubscriptionProduct" ADD CONSTRAINT "PortalUserSubscriptionProduct_subscriptionProductId_fkey" FOREIGN KEY ("subscriptionProductId") REFERENCES "PortalSubscriptionProduct"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "PortalUserSubscriptionProductPrice" ADD CONSTRAINT "PortalUserSubscriptionProductPrice_portalId_fkey" FOREIGN KEY ("portalId") REFERENCES "Portal"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "PortalUserSubscriptionProductPrice" ADD CONSTRAINT "PortalUserSubscriptionProductPrice_portalUserSubscriptionP_fkey" FOREIGN KEY ("portalUserSubscriptionProductId") REFERENCES "PortalUserSubscriptionProduct"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "PortalUserSubscriptionProductPrice" ADD CONSTRAINT "PortalUserSubscriptionProductPrice_subscriptionPriceId_fkey" FOREIGN KEY ("subscriptionPriceId") REFERENCES "PortalSubscriptionPrice"("id") ON DELETE SET NULL ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "PortalCheckoutSessionStatus" ADD CONSTRAINT "PortalCheckoutSessionStatus_portalId_fkey" FOREIGN KEY ("portalId") REFERENCES "Portal"("id") ON DELETE CASCADE ON UPDATE CASCADE;
@@ -0,0 +1,13 @@
/*
Warnings:
- You are about to drop the column `content` on the `PortalPage` table. All the data in the column will be lost.
- You are about to drop the column `description` on the `PortalPage` table. All the data in the column will be lost.
- You are about to drop the column `title` on the `PortalPage` table. All the data in the column will be lost.
*/
-- AlterTable
ALTER TABLE "PortalPage" DROP COLUMN "content",
DROP COLUMN "description",
DROP COLUMN "title",
ADD COLUMN "attributes" JSONB;
@@ -0,0 +1,17 @@
-- AlterTable
ALTER TABLE "AnalyticsEvent" ADD COLUMN "portalUserId" TEXT;
-- AlterTable
ALTER TABLE "AnalyticsPageView" ADD COLUMN "portalUserId" TEXT;
-- AlterTable
ALTER TABLE "AnalyticsUniqueVisitor" ADD COLUMN "portalUserId" TEXT;
-- AddForeignKey
ALTER TABLE "AnalyticsUniqueVisitor" ADD CONSTRAINT "AnalyticsUniqueVisitor_portalUserId_fkey" FOREIGN KEY ("portalUserId") REFERENCES "PortalUser"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "AnalyticsPageView" ADD CONSTRAINT "AnalyticsPageView_portalUserId_fkey" FOREIGN KEY ("portalUserId") REFERENCES "PortalUser"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "AnalyticsEvent" ADD CONSTRAINT "AnalyticsEvent_portalUserId_fkey" FOREIGN KEY ("portalUserId") REFERENCES "PortalUser"("id") ON DELETE CASCADE ON UPDATE CASCADE;
@@ -0,0 +1,3 @@
-- AlterTable
ALTER TABLE "AppConfiguration" ADD COLUMN "bodyScripts" TEXT,
ADD COLUMN "headScripts" TEXT;
@@ -0,0 +1,27 @@
/*
Warnings:
- A unique constraint covering the columns `[slug]` on the table `Page` will be added. If there are existing duplicate values, this will fail.
*/
-- CreateTable
CREATE TABLE "Widget" (
"id" TEXT NOT NULL,
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updatedAt" TIMESTAMP(3) NOT NULL,
"tenantId" TEXT,
"name" TEXT NOT NULL,
"appearance" TEXT NOT NULL,
"metadata" TEXT NOT NULL,
CONSTRAINT "Widget_pkey" PRIMARY KEY ("id")
);
-- CreateIndex
CREATE UNIQUE INDEX "Widget_tenantId_name_key" ON "Widget"("tenantId", "name");
-- CreateIndex
CREATE UNIQUE INDEX "Page_slug_key" ON "Page"("slug");
-- AddForeignKey
ALTER TABLE "Widget" ADD CONSTRAINT "Widget_tenantId_fkey" FOREIGN KEY ("tenantId") REFERENCES "Tenant"("id") ON DELETE CASCADE ON UPDATE CASCADE;
@@ -0,0 +1,70 @@
/*
Warnings:
- You are about to drop the `Integration` table. If the table is not empty, all the data it contains will be lost.
- You are about to drop the `IntegrationObjectMap` table. If the table is not empty, all the data it contains will be lost.
- You are about to drop the `IntegrationPropertyMap` table. If the table is not empty, all the data it contains will be lost.
- You are about to drop the `IntegrationRow` table. If the table is not empty, all the data it contains will be lost.
- You are about to drop the `IntegrationSync` table. If the table is not empty, all the data it contains will be lost.
- You are about to drop the `IntegrationSyncLog` table. If the table is not empty, all the data it contains will be lost.
*/
-- DropForeignKey
ALTER TABLE "Integration" DROP CONSTRAINT "Integration_tenantId_fkey";
-- DropForeignKey
ALTER TABLE "IntegrationObjectMap" DROP CONSTRAINT "IntegrationObjectMap_integrationId_fkey";
-- DropForeignKey
ALTER TABLE "IntegrationObjectMap" DROP CONSTRAINT "IntegrationObjectMap_toEntityId_fkey";
-- DropForeignKey
ALTER TABLE "IntegrationPropertyMap" DROP CONSTRAINT "IntegrationPropertyMap_objectMapId_fkey";
-- DropForeignKey
ALTER TABLE "IntegrationPropertyMap" DROP CONSTRAINT "IntegrationPropertyMap_toPropertyId_fkey";
-- DropForeignKey
ALTER TABLE "IntegrationRow" DROP CONSTRAINT "IntegrationRow_objectMapId_fkey";
-- DropForeignKey
ALTER TABLE "IntegrationRow" DROP CONSTRAINT "IntegrationRow_rowId_fkey";
-- DropForeignKey
ALTER TABLE "IntegrationSync" DROP CONSTRAINT "IntegrationSync_createdByApiKeyId_fkey";
-- DropForeignKey
ALTER TABLE "IntegrationSync" DROP CONSTRAINT "IntegrationSync_createdByUserId_fkey";
-- DropForeignKey
ALTER TABLE "IntegrationSync" DROP CONSTRAINT "IntegrationSync_integrationId_fkey";
-- DropForeignKey
ALTER TABLE "IntegrationSyncLog" DROP CONSTRAINT "IntegrationSyncLog_entityId_fkey";
-- DropForeignKey
ALTER TABLE "IntegrationSyncLog" DROP CONSTRAINT "IntegrationSyncLog_relationshipId_fkey";
-- DropForeignKey
ALTER TABLE "IntegrationSyncLog" DROP CONSTRAINT "IntegrationSyncLog_rowId_fkey";
-- DropForeignKey
ALTER TABLE "IntegrationSyncLog" DROP CONSTRAINT "IntegrationSyncLog_syncId_fkey";
-- DropTable
DROP TABLE "Integration";
-- DropTable
DROP TABLE "IntegrationObjectMap";
-- DropTable
DROP TABLE "IntegrationPropertyMap";
-- DropTable
DROP TABLE "IntegrationRow";
-- DropTable
DROP TABLE "IntegrationSync";
-- DropTable
DROP TABLE "IntegrationSyncLog";
@@ -0,0 +1,5 @@
-- DropForeignKey
ALTER TABLE "ApiKeyLog" DROP CONSTRAINT "ApiKeyLog_apiKeyId_fkey";
-- AddForeignKey
ALTER TABLE "ApiKeyLog" ADD CONSTRAINT "ApiKeyLog_apiKeyId_fkey" FOREIGN KEY ("apiKeyId") REFERENCES "ApiKey"("id") ON DELETE SET NULL ON UPDATE CASCADE;
@@ -0,0 +1,74 @@
-- CreateTable
CREATE TABLE "Survey" (
"id" TEXT NOT NULL,
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updatedAt" TIMESTAMP(3) NOT NULL,
"tenantId" TEXT,
"title" TEXT NOT NULL,
"slug" TEXT NOT NULL,
"description" TEXT,
"isEnabled" BOOLEAN NOT NULL,
"isPublic" BOOLEAN NOT NULL DEFAULT false,
"minSubmissions" INTEGER NOT NULL DEFAULT 0,
"image" TEXT,
CONSTRAINT "Survey_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "SurveyItem" (
"id" TEXT NOT NULL,
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updatedAt" TIMESTAMP(3) NOT NULL,
"surveyId" TEXT NOT NULL,
"title" TEXT NOT NULL,
"description" TEXT,
"shortName" TEXT,
"type" TEXT NOT NULL,
"order" INTEGER NOT NULL,
"categories" JSONB NOT NULL,
"href" TEXT,
"color" TEXT,
"options" JSONB NOT NULL,
"style" TEXT,
CONSTRAINT "SurveyItem_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "SurveySubmission" (
"id" TEXT NOT NULL,
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updatedAt" TIMESTAMP(3) NOT NULL,
"surveyId" TEXT NOT NULL,
"userAnalyticsId" TEXT NOT NULL,
"ipAddress" TEXT NOT NULL,
CONSTRAINT "SurveySubmission_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "SurveySubmissionResult" (
"id" TEXT NOT NULL,
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updatedAt" TIMESTAMP(3) NOT NULL,
"surveySubmissionId" TEXT NOT NULL,
"surveItemTitle" TEXT NOT NULL,
"surveItemType" TEXT NOT NULL,
"value" JSONB NOT NULL,
"other" TEXT,
CONSTRAINT "SurveySubmissionResult_pkey" PRIMARY KEY ("id")
);
-- AddForeignKey
ALTER TABLE "Survey" ADD CONSTRAINT "Survey_tenantId_fkey" FOREIGN KEY ("tenantId") REFERENCES "Tenant"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "SurveyItem" ADD CONSTRAINT "SurveyItem_surveyId_fkey" FOREIGN KEY ("surveyId") REFERENCES "Survey"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "SurveySubmission" ADD CONSTRAINT "SurveySubmission_surveyId_fkey" FOREIGN KEY ("surveyId") REFERENCES "Survey"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "SurveySubmissionResult" ADD CONSTRAINT "SurveySubmissionResult_surveySubmissionId_fkey" FOREIGN KEY ("surveySubmissionId") REFERENCES "SurveySubmission"("id") ON DELETE CASCADE ON UPDATE CASCADE;
@@ -0,0 +1,33 @@
/*
Warnings:
- You are about to drop the `AppCookie` table. If the table is not empty, all the data it contains will be lost.
- You are about to drop the `Module` table. If the table is not empty, all the data it contains will be lost.
*/
-- DropForeignKey
ALTER TABLE "Entity" DROP CONSTRAINT "Entity_moduleId_fkey";
-- AlterTable
ALTER TABLE "_PermissionToTenantTypeRelationship" ADD CONSTRAINT "_PermissionToTenantTypeRelationship_AB_pkey" PRIMARY KEY ("A", "B");
-- DropIndex
DROP INDEX "_PermissionToTenantTypeRelationship_AB_unique";
-- AlterTable
ALTER TABLE "_SubscriptionProductToTenantType" ADD CONSTRAINT "_SubscriptionProductToTenantType_AB_pkey" PRIMARY KEY ("A", "B");
-- DropIndex
DROP INDEX "_SubscriptionProductToTenantType_AB_unique";
-- AlterTable
ALTER TABLE "_TenantToTenantType" ADD CONSTRAINT "_TenantToTenantType_AB_pkey" PRIMARY KEY ("A", "B");
-- DropIndex
DROP INDEX "_TenantToTenantType_AB_unique";
-- DropTable
DROP TABLE "AppCookie";
-- DropTable
DROP TABLE "Module";
@@ -0,0 +1,11 @@
/*
Warnings:
- You are about to drop the `TenantUserRole` table. If the table is not empty, all the data it contains will be lost.
*/
-- DropForeignKey
ALTER TABLE "TenantUserRole" DROP CONSTRAINT "TenantUserRole_tenantUserId_fkey";
-- DropTable
DROP TABLE "TenantUserRole";
@@ -0,0 +1,28 @@
/*
Warnings:
- You are about to drop the `Tag` table. If the table is not empty, all the data it contains will be lost.
- You are about to drop the `TagTenant` table. If the table is not empty, all the data it contains will be lost.
- You are about to drop the `TagUser` table. If the table is not empty, all the data it contains will be lost.
*/
-- DropForeignKey
ALTER TABLE "TagTenant" DROP CONSTRAINT "TagTenant_tagId_fkey";
-- DropForeignKey
ALTER TABLE "TagTenant" DROP CONSTRAINT "TagTenant_tenantId_fkey";
-- DropForeignKey
ALTER TABLE "TagUser" DROP CONSTRAINT "TagUser_tagId_fkey";
-- DropForeignKey
ALTER TABLE "TagUser" DROP CONSTRAINT "TagUser_userId_fkey";
-- DropTable
DROP TABLE "Tag";
-- DropTable
DROP TABLE "TagTenant";
-- DropTable
DROP TABLE "TagUser";
@@ -0,0 +1,11 @@
-- AlterTable
ALTER TABLE "AdminUser" ADD CONSTRAINT "AdminUser_pkey" PRIMARY KEY ("userId");
-- AlterTable
ALTER TABLE "AppConfiguration" ADD COLUMN "emailFromEmail" TEXT,
ADD COLUMN "emailFromName" TEXT,
ADD COLUMN "emailProvider" TEXT,
ADD COLUMN "emailSupportEmail" TEXT;
-- AlterTable
ALTER TABLE "TenantSettingsRow" ADD CONSTRAINT "TenantSettingsRow_pkey" PRIMARY KEY ("tenantId");
@@ -0,0 +1,13 @@
-- CreateTable
CREATE TABLE "Credential" (
"id" TEXT NOT NULL,
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updatedAt" TIMESTAMP(3) NOT NULL,
"name" TEXT NOT NULL,
"value" JSONB NOT NULL,
CONSTRAINT "Credential_pkey" PRIMARY KEY ("id")
);
-- CreateIndex
CREATE UNIQUE INDEX "Credential_name_key" ON "Credential"("name");
@@ -0,0 +1,4 @@
DROP TABLE IF EXISTS "BlogPostTag" CASCADE;
DROP TABLE IF EXISTS "BlogPost" CASCADE;
DROP TABLE IF EXISTS "BlogTag" CASCADE;
DROP TABLE IF EXISTS "BlogCategory" CASCADE;
@@ -0,0 +1,3 @@
DROP TABLE IF EXISTS "PageBlock" CASCADE;
DROP TABLE IF EXISTS "PageMetaTag" CASCADE;
DROP TABLE IF EXISTS "Page" CASCADE;
@@ -0,0 +1,2 @@
ALTER TABLE "Portal" DROP COLUMN IF EXISTS "affiliatesRewardfulApiKey";
ALTER TABLE "Portal" DROP COLUMN IF EXISTS "affiliatesRewardfulUrl";
@@ -0,0 +1 @@
DROP TABLE IF EXISTS "MySiteDemoSubmission" CASCADE;
@@ -0,0 +1,9 @@
-- AlterTable
ALTER TABLE "ApiKey" ADD COLUMN "keyHash" TEXT;
ALTER TABLE "ApiKey" ADD COLUMN "keyPrefix" TEXT;
ALTER TABLE "ApiKey" ADD COLUMN "keyLastFour" TEXT;
ALTER TABLE "ApiKey" ADD COLUMN "hashedAt" TIMESTAMP(3);
ALTER TABLE "ApiKey" ADD COLUMN "keyVersion" INTEGER NOT NULL DEFAULT 1;
-- CreateIndex
CREATE UNIQUE INDEX "api_key_hash_key" ON "ApiKey"("keyHash");
@@ -0,0 +1,28 @@
-- CreateTable
CREATE TABLE "QueueFailedJob" (
"id" TEXT NOT NULL,
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updatedAt" TIMESTAMP(3) NOT NULL,
"queueName" TEXT NOT NULL,
"jobName" TEXT NOT NULL,
"jobId" TEXT,
"attemptsMade" INTEGER NOT NULL,
"attemptsLimit" INTEGER,
"errorName" TEXT NOT NULL,
"errorMessage" TEXT NOT NULL,
"failedAt" TIMESTAMP(3),
CONSTRAINT "QueueFailedJob_pkey" PRIMARY KEY ("id")
);
-- CreateIndex
CREATE INDEX "QueueFailedJob_queueName_jobName_failedAt_idx" ON "QueueFailedJob"("queueName", "jobName", "failedAt");
-- CreateIndex
CREATE INDEX "QueueFailedJob_jobId_idx" ON "QueueFailedJob"("jobId");
-- CreateIndex
CREATE INDEX "QueueFailedJob_failedAt_idx" ON "QueueFailedJob"("failedAt");
-- CreateIndex
CREATE UNIQUE INDEX "QueueFailedJob_queueName_jobName_jobId_key" ON "QueueFailedJob"("queueName", "jobName", "jobId");
@@ -0,0 +1,2 @@
-- AlterTable
ALTER TABLE "TenantSubscriptionProduct" ADD COLUMN "customEntitlementPlanId" TEXT;
@@ -0,0 +1,28 @@
-- CreateTable
CREATE TABLE "FileObject" (
"id" TEXT NOT NULL,
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updatedAt" TIMESTAMP(3) NOT NULL,
"provider" TEXT NOT NULL,
"bucket" TEXT NOT NULL,
"key" TEXT NOT NULL,
"contentType" TEXT NOT NULL,
"byteSize" INTEGER NOT NULL,
"checksumSha256" TEXT,
"publicUrl" TEXT,
"uploadedAt" TIMESTAMP(3),
"lastSignedUploadAt" TIMESTAMP(3),
"lastSignedDownloadAt" TIMESTAMP(3),
"metadata" JSONB,
CONSTRAINT "FileObject_pkey" PRIMARY KEY ("id")
);
-- CreateIndex
CREATE UNIQUE INDEX "file_object_provider_bucket_key" ON "FileObject"("provider", "bucket", "key");
-- CreateIndex
CREATE INDEX "file_object_provider_bucket_idx" ON "FileObject"("provider", "bucket");
-- CreateIndex
CREATE INDEX "file_object_uploaded_at_idx" ON "FileObject"("uploadedAt");
@@ -0,0 +1,41 @@
-- CreateEnum
CREATE TYPE "ExportJobStatus" AS ENUM ('PENDING', 'RUNNING', 'COMPLETED', 'FAILED');
-- CreateTable
CREATE TABLE "ExportJob" (
"id" TEXT NOT NULL,
"tenantId" TEXT NOT NULL,
"requestedByUserId" TEXT,
"exportType" TEXT NOT NULL,
"format" TEXT NOT NULL,
"status" "ExportJobStatus" NOT NULL DEFAULT 'PENDING',
"requestId" TEXT NOT NULL,
"attemptsMade" INTEGER NOT NULL DEFAULT 0,
"artifactBucket" TEXT,
"artifactKey" TEXT,
"rowCount" INTEGER,
"errorName" TEXT,
"errorMessage" TEXT,
"expiresAt" TIMESTAMP(3),
"startedAt" TIMESTAMP(3),
"finishedAt" TIMESTAMP(3),
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updatedAt" TIMESTAMP(3) NOT NULL,
CONSTRAINT "ExportJob_pkey" PRIMARY KEY ("id")
);
-- CreateIndex
CREATE INDEX "ExportJob_tenantId_status_idx" ON "ExportJob"("tenantId", "status");
-- CreateIndex
CREATE INDEX "ExportJob_tenantId_createdAt_idx" ON "ExportJob"("tenantId", "createdAt");
-- CreateIndex
CREATE INDEX "ExportJob_requestId_idx" ON "ExportJob"("requestId");
-- CreateIndex
CREATE INDEX "ExportJob_expiresAt_idx" ON "ExportJob"("expiresAt");
-- CreateIndex
CREATE INDEX "ExportJob_status_updatedAt_idx" ON "ExportJob"("status", "updatedAt");
@@ -0,0 +1,2 @@
-- Add nullable persisted user theme preference. Values remain unrestricted for compatibility.
ALTER TABLE "User" ADD COLUMN "lightOrDarkMode" TEXT;
@@ -0,0 +1,46 @@
-- CreateEnum
CREATE TYPE "ImportJobStatus" AS ENUM ('PENDING', 'RUNNING', 'COMPLETED', 'FAILED');
-- CreateTable
CREATE TABLE "ImportJob" (
"id" TEXT NOT NULL,
"tenantId" TEXT NOT NULL,
"requestedByUserId" TEXT,
"importType" TEXT NOT NULL,
"format" TEXT NOT NULL,
"status" "ImportJobStatus" NOT NULL DEFAULT 'PENDING',
"requestId" TEXT NOT NULL,
"attemptsMade" INTEGER NOT NULL DEFAULT 0,
"sourceBucket" TEXT NOT NULL,
"sourceKey" TEXT NOT NULL,
"fileName" TEXT,
"contentType" TEXT,
"rowCount" INTEGER,
"acceptedRows" INTEGER NOT NULL DEFAULT 0,
"rejectedRows" INTEGER NOT NULL DEFAULT 0,
"errorName" TEXT,
"errorMessage" TEXT,
"errorReportBucket" TEXT,
"errorReportKey" TEXT,
"startedAt" TIMESTAMP(3),
"finishedAt" TIMESTAMP(3),
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updatedAt" TIMESTAMP(3) NOT NULL,
CONSTRAINT "ImportJob_pkey" PRIMARY KEY ("id")
);
-- CreateIndex
CREATE INDEX "ImportJob_tenantId_status_idx" ON "ImportJob"("tenantId", "status");
-- CreateIndex
CREATE INDEX "ImportJob_tenantId_createdAt_idx" ON "ImportJob"("tenantId", "createdAt");
-- CreateIndex
CREATE INDEX "ImportJob_requestId_idx" ON "ImportJob"("requestId");
-- CreateIndex
CREATE INDEX "ImportJob_sourceBucket_sourceKey_idx" ON "ImportJob"("sourceBucket", "sourceKey");
-- CreateIndex
CREATE INDEX "ImportJob_status_updatedAt_idx" ON "ImportJob"("status", "updatedAt");
@@ -0,0 +1,5 @@
-- Add nullable encrypted TOTP enrollment state to existing users.
ALTER TABLE "User" ADD COLUMN "totpSecretEncrypted" TEXT;
ALTER TABLE "User" ADD COLUMN "totpPendingSecretEncrypted" TEXT;
ALTER TABLE "User" ADD COLUMN "totpEnabledAt" TIMESTAMP(3);
ALTER TABLE "User" ADD COLUMN "totpPendingCreatedAt" TIMESTAMP(3);
@@ -0,0 +1,4 @@
-- Add nullable hashed MFA recovery-code state to existing users.
ALTER TABLE "User" ADD COLUMN "mfaRecoveryCodeHashes" JSONB;
ALTER TABLE "User" ADD COLUMN "mfaRecoveryCodesGeneratedAt" TIMESTAMP(3);
ALTER TABLE "User" ADD COLUMN "mfaRecoveryCodeLastUsedAt" TIMESTAMP(3);
@@ -0,0 +1,35 @@
-- CreateTable
CREATE TABLE "ImpersonationAudit" (
"id" TEXT NOT NULL,
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"actorUserId" TEXT,
"targetUserId" TEXT,
"tenantId" TEXT,
"action" TEXT NOT NULL,
"reason" TEXT,
"requestPath" TEXT NOT NULL,
"metadata" TEXT,
CONSTRAINT "ImpersonationAudit_pkey" PRIMARY KEY ("id")
);
-- CreateIndex
CREATE INDEX "ImpersonationAudit_actorUserId_idx" ON "ImpersonationAudit"("actorUserId");
-- CreateIndex
CREATE INDEX "ImpersonationAudit_targetUserId_idx" ON "ImpersonationAudit"("targetUserId");
-- CreateIndex
CREATE INDEX "ImpersonationAudit_tenantId_idx" ON "ImpersonationAudit"("tenantId");
-- CreateIndex
CREATE INDEX "ImpersonationAudit_createdAt_idx" ON "ImpersonationAudit"("createdAt");
-- AddForeignKey
ALTER TABLE "ImpersonationAudit" ADD CONSTRAINT "ImpersonationAudit_actorUserId_fkey" FOREIGN KEY ("actorUserId") REFERENCES "User"("id") ON DELETE SET NULL ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "ImpersonationAudit" ADD CONSTRAINT "ImpersonationAudit_targetUserId_fkey" FOREIGN KEY ("targetUserId") REFERENCES "User"("id") ON DELETE SET NULL ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "ImpersonationAudit" ADD CONSTRAINT "ImpersonationAudit_tenantId_fkey" FOREIGN KEY ("tenantId") REFERENCES "Tenant"("id") ON DELETE SET NULL ON UPDATE CASCADE;
@@ -0,0 +1,73 @@
-- CreateEnum
CREATE TYPE "NotificationDeliveryStatus" AS ENUM ('PENDING', 'SENT', 'FAILED', 'READ');
-- CreateEnum
CREATE TYPE "NotificationPreferenceChannel" AS ENUM ('IN_APP', 'EMAIL');
-- CreateTable
CREATE TABLE "NotificationDelivery" (
"id" TEXT NOT NULL,
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updatedAt" TIMESTAMP(3) NOT NULL,
"tenantId" TEXT,
"userId" TEXT,
"channel" "NotificationPreferenceChannel" NOT NULL,
"category" TEXT NOT NULL,
"messageKey" TEXT NOT NULL,
"status" "NotificationDeliveryStatus" NOT NULL DEFAULT 'PENDING',
"attemptsMade" INTEGER NOT NULL DEFAULT 0,
"providerMessageId" TEXT,
"lastError" TEXT,
"payloadMetadata" JSONB,
"sentAt" TIMESTAMP(3),
"readAt" TIMESTAMP(3),
CONSTRAINT "NotificationDelivery_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "UserNotificationPreference" (
"id" TEXT NOT NULL,
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updatedAt" TIMESTAMP(3) NOT NULL,
"tenantId" TEXT NOT NULL,
"userId" TEXT NOT NULL,
"channel" "NotificationPreferenceChannel" NOT NULL,
"category" TEXT NOT NULL,
"enabled" BOOLEAN NOT NULL DEFAULT true,
CONSTRAINT "UserNotificationPreference_pkey" PRIMARY KEY ("id")
);
-- CreateIndex
CREATE INDEX "notification_delivery_tenant_user_status_idx" ON "NotificationDelivery"("tenantId", "userId", "status");
-- CreateIndex
CREATE INDEX "notification_delivery_tenant_channel_category_idx" ON "NotificationDelivery"("tenantId", "channel", "category");
-- CreateIndex
CREATE INDEX "notification_delivery_status_updated_at_idx" ON "NotificationDelivery"("status", "updatedAt");
-- CreateIndex
CREATE INDEX "notification_delivery_provider_message_id_idx" ON "NotificationDelivery"("providerMessageId");
-- CreateIndex
CREATE UNIQUE INDEX "user_notification_preference_scope_key" ON "UserNotificationPreference"("tenantId", "userId", "channel", "category");
-- CreateIndex
CREATE INDEX "user_notification_preference_tenant_user_category_idx" ON "UserNotificationPreference"("tenantId", "userId", "category");
-- CreateIndex
CREATE INDEX "user_notification_preference_tenant_category_idx" ON "UserNotificationPreference"("tenantId", "category");
-- AddForeignKey
ALTER TABLE "NotificationDelivery" ADD CONSTRAINT "NotificationDelivery_tenantId_fkey" FOREIGN KEY ("tenantId") REFERENCES "Tenant"("id") ON DELETE SET NULL ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "NotificationDelivery" ADD CONSTRAINT "NotificationDelivery_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE SET NULL ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "UserNotificationPreference" ADD CONSTRAINT "UserNotificationPreference_tenantId_fkey" FOREIGN KEY ("tenantId") REFERENCES "Tenant"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "UserNotificationPreference" ADD CONSTRAINT "UserNotificationPreference_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE;
@@ -0,0 +1,7 @@
-- AlterTable
ALTER TABLE "ExportJob" ADD COLUMN "retentionErrorMessage" TEXT,
ADD COLUMN "deletedAt" TIMESTAMP(3),
ADD COLUMN "hardDeletedAt" TIMESTAMP(3);
-- CreateIndex
CREATE INDEX "ExportJob_deletedAt_hardDeletedAt_idx" ON "ExportJob"("deletedAt", "hardDeletedAt");
Loaded 100 of 5784 files, more files were not shown because too many files have changed in this diff. Show more