111 lines
4.0 KiB
SQL
111 lines
4.0 KiB
SQL
/*
|
|
Warnings:
|
|
|
|
- A unique constraint covering the columns `[partnerId,code]` on the table `Plan` will be added. If there are existing duplicate values, this will fail.
|
|
- Added the required column `code` to the `Plan` table without a default value. This is not possible if the table is not empty.
|
|
- Added the required column `partnerId` to the `Plan` table without a default value. This is not possible if the table is not empty.
|
|
|
|
*/
|
|
-- AlterTable
|
|
ALTER TABLE "Plan" ADD COLUMN "code" TEXT NOT NULL,
|
|
ADD COLUMN "features" JSONB,
|
|
ADD COLUMN "intervalCount" INTEGER NOT NULL DEFAULT 1,
|
|
ADD COLUMN "limits" JSONB,
|
|
ADD COLUMN "partnerId" TEXT NOT NULL,
|
|
ADD COLUMN "trialDays" INTEGER NOT NULL DEFAULT 0;
|
|
|
|
-- AlterTable
|
|
ALTER TABLE "Webhook" ADD COLUMN "partnerId" TEXT;
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "Invoice" (
|
|
"id" TEXT NOT NULL,
|
|
"number" TEXT NOT NULL,
|
|
"subscriptionId" TEXT NOT NULL,
|
|
"userId" TEXT NOT NULL,
|
|
"partnerId" TEXT NOT NULL,
|
|
"paymentId" TEXT,
|
|
"amount" DOUBLE PRECISION NOT NULL,
|
|
"currency" TEXT NOT NULL,
|
|
"status" TEXT NOT NULL,
|
|
"billingPeriodStart" TIMESTAMP(3) NOT NULL,
|
|
"billingPeriodEnd" TIMESTAMP(3) NOT NULL,
|
|
"dueDate" TIMESTAMP(3) NOT NULL,
|
|
"paidAt" TIMESTAMP(3),
|
|
"items" JSONB NOT NULL,
|
|
"attempts" INTEGER NOT NULL DEFAULT 0,
|
|
"failureReason" TEXT,
|
|
"metadata" JSONB,
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "Invoice_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "Notification" (
|
|
"id" TEXT NOT NULL,
|
|
"partnerId" TEXT NOT NULL,
|
|
"userId" TEXT,
|
|
"type" TEXT NOT NULL,
|
|
"channel" TEXT NOT NULL,
|
|
"recipient" TEXT NOT NULL,
|
|
"subject" TEXT,
|
|
"content" TEXT NOT NULL,
|
|
"templateId" TEXT,
|
|
"status" TEXT NOT NULL,
|
|
"batchId" TEXT,
|
|
"scheduledFor" TIMESTAMP(3),
|
|
"sentAt" TIMESTAMP(3),
|
|
"failedAt" TIMESTAMP(3),
|
|
"failureReason" TEXT,
|
|
"response" JSONB,
|
|
"metadata" JSONB,
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "Notification_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "Invoice_number_key" ON "Invoice"("number");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "Invoice_paymentId_key" ON "Invoice"("paymentId");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "Invoice_subscriptionId_idx" ON "Invoice"("subscriptionId");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "Invoice_partnerId_status_idx" ON "Invoice"("partnerId", "status");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "Plan_partnerId_active_idx" ON "Plan"("partnerId", "active");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "Plan_partnerId_code_key" ON "Plan"("partnerId", "code");
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "Plan" ADD CONSTRAINT "Plan_partnerId_fkey" FOREIGN KEY ("partnerId") REFERENCES "Partner"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "Invoice" ADD CONSTRAINT "Invoice_subscriptionId_fkey" FOREIGN KEY ("subscriptionId") REFERENCES "Subscription"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "Invoice" ADD CONSTRAINT "Invoice_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "Invoice" ADD CONSTRAINT "Invoice_partnerId_fkey" FOREIGN KEY ("partnerId") REFERENCES "Partner"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "Invoice" ADD CONSTRAINT "Invoice_paymentId_fkey" FOREIGN KEY ("paymentId") REFERENCES "Payment"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "Webhook" ADD CONSTRAINT "Webhook_partnerId_fkey" FOREIGN KEY ("partnerId") REFERENCES "Partner"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "Notification" ADD CONSTRAINT "Notification_partnerId_fkey" FOREIGN KEY ("partnerId") REFERENCES "Partner"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "Notification" ADD CONSTRAINT "Notification_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|