mirror of
https://github.com/wasp-lang/open-saas.git
synced 2025-11-20 20:28:30 +01:00
176 lines
5.6 KiB
Diff
176 lines
5.6 KiB
Diff
--- /Users/ilakovac/dev/open-saas/template-test/tools/../../template-test/base-app/app/migrations/20251007102522_init/migration.sql
|
|
+++ template-test/app/migrations/20251007102522_init/migration.sql
|
|
@@ -0,0 +1,172 @@
|
|
+-- CreateTable
|
|
+CREATE TABLE "User" (
|
|
+ "id" TEXT NOT NULL,
|
|
+ "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
+ "email" TEXT,
|
|
+ "username" TEXT,
|
|
+ "isAdmin" BOOLEAN NOT NULL DEFAULT false,
|
|
+ "paymentProcessorUserId" TEXT,
|
|
+ "lemonSqueezyCustomerPortalUrl" TEXT,
|
|
+ "subscriptionStatus" TEXT,
|
|
+ "subscriptionPlan" TEXT,
|
|
+ "datePaid" TIMESTAMP(3),
|
|
+ "credits" INTEGER NOT NULL DEFAULT 3,
|
|
+
|
|
+ CONSTRAINT "User_pkey" PRIMARY KEY ("id")
|
|
+);
|
|
+
|
|
+-- CreateTable
|
|
+CREATE TABLE "GptResponse" (
|
|
+ "id" TEXT NOT NULL,
|
|
+ "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
+ "updatedAt" TIMESTAMP(3) NOT NULL,
|
|
+ "userId" TEXT NOT NULL,
|
|
+ "content" TEXT NOT NULL,
|
|
+
|
|
+ CONSTRAINT "GptResponse_pkey" PRIMARY KEY ("id")
|
|
+);
|
|
+
|
|
+-- CreateTable
|
|
+CREATE TABLE "Task" (
|
|
+ "id" TEXT NOT NULL,
|
|
+ "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
+ "userId" TEXT NOT NULL,
|
|
+ "description" TEXT NOT NULL,
|
|
+ "time" TEXT NOT NULL DEFAULT '1',
|
|
+ "isDone" BOOLEAN NOT NULL DEFAULT false,
|
|
+
|
|
+ CONSTRAINT "Task_pkey" PRIMARY KEY ("id")
|
|
+);
|
|
+
|
|
+-- CreateTable
|
|
+CREATE TABLE "File" (
|
|
+ "id" TEXT NOT NULL,
|
|
+ "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
+ "userId" TEXT NOT NULL,
|
|
+ "name" TEXT NOT NULL,
|
|
+ "type" TEXT NOT NULL,
|
|
+ "key" TEXT NOT NULL,
|
|
+ "uploadUrl" TEXT NOT NULL,
|
|
+
|
|
+ CONSTRAINT "File_pkey" PRIMARY KEY ("id")
|
|
+);
|
|
+
|
|
+-- CreateTable
|
|
+CREATE TABLE "DailyStats" (
|
|
+ "id" SERIAL NOT NULL,
|
|
+ "date" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
+ "totalViews" INTEGER NOT NULL DEFAULT 0,
|
|
+ "prevDayViewsChangePercent" TEXT NOT NULL DEFAULT '0',
|
|
+ "userCount" INTEGER NOT NULL DEFAULT 0,
|
|
+ "paidUserCount" INTEGER NOT NULL DEFAULT 0,
|
|
+ "userDelta" INTEGER NOT NULL DEFAULT 0,
|
|
+ "paidUserDelta" INTEGER NOT NULL DEFAULT 0,
|
|
+ "totalRevenue" DOUBLE PRECISION NOT NULL DEFAULT 0,
|
|
+ "totalProfit" DOUBLE PRECISION NOT NULL DEFAULT 0,
|
|
+
|
|
+ CONSTRAINT "DailyStats_pkey" PRIMARY KEY ("id")
|
|
+);
|
|
+
|
|
+-- CreateTable
|
|
+CREATE TABLE "PageViewSource" (
|
|
+ "name" TEXT NOT NULL,
|
|
+ "date" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
+ "dailyStatsId" INTEGER,
|
|
+ "visitors" INTEGER NOT NULL,
|
|
+
|
|
+ CONSTRAINT "PageViewSource_pkey" PRIMARY KEY ("date","name")
|
|
+);
|
|
+
|
|
+-- CreateTable
|
|
+CREATE TABLE "Logs" (
|
|
+ "id" SERIAL NOT NULL,
|
|
+ "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
+ "message" TEXT NOT NULL,
|
|
+ "level" TEXT NOT NULL,
|
|
+
|
|
+ CONSTRAINT "Logs_pkey" PRIMARY KEY ("id")
|
|
+);
|
|
+
|
|
+-- CreateTable
|
|
+CREATE TABLE "ContactFormMessage" (
|
|
+ "id" TEXT NOT NULL,
|
|
+ "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
+ "userId" TEXT NOT NULL,
|
|
+ "content" TEXT NOT NULL,
|
|
+ "isRead" BOOLEAN NOT NULL DEFAULT false,
|
|
+ "repliedAt" TIMESTAMP(3),
|
|
+
|
|
+ CONSTRAINT "ContactFormMessage_pkey" PRIMARY KEY ("id")
|
|
+);
|
|
+
|
|
+-- CreateTable
|
|
+CREATE TABLE "Auth" (
|
|
+ "id" TEXT NOT NULL,
|
|
+ "userId" TEXT,
|
|
+
|
|
+ CONSTRAINT "Auth_pkey" PRIMARY KEY ("id")
|
|
+);
|
|
+
|
|
+-- CreateTable
|
|
+CREATE TABLE "AuthIdentity" (
|
|
+ "providerName" TEXT NOT NULL,
|
|
+ "providerUserId" TEXT NOT NULL,
|
|
+ "providerData" TEXT NOT NULL DEFAULT '{}',
|
|
+ "authId" TEXT NOT NULL,
|
|
+
|
|
+ CONSTRAINT "AuthIdentity_pkey" PRIMARY KEY ("providerName","providerUserId")
|
|
+);
|
|
+
|
|
+-- CreateTable
|
|
+CREATE TABLE "Session" (
|
|
+ "id" TEXT NOT NULL,
|
|
+ "expiresAt" TIMESTAMP(3) NOT NULL,
|
|
+ "userId" TEXT NOT NULL,
|
|
+
|
|
+ CONSTRAINT "Session_pkey" PRIMARY KEY ("id")
|
|
+);
|
|
+
|
|
+-- CreateIndex
|
|
+CREATE UNIQUE INDEX "User_email_key" ON "User"("email");
|
|
+
|
|
+-- CreateIndex
|
|
+CREATE UNIQUE INDEX "User_username_key" ON "User"("username");
|
|
+
|
|
+-- CreateIndex
|
|
+CREATE UNIQUE INDEX "User_paymentProcessorUserId_key" ON "User"("paymentProcessorUserId");
|
|
+
|
|
+-- CreateIndex
|
|
+CREATE UNIQUE INDEX "DailyStats_date_key" ON "DailyStats"("date");
|
|
+
|
|
+-- CreateIndex
|
|
+CREATE UNIQUE INDEX "Auth_userId_key" ON "Auth"("userId");
|
|
+
|
|
+-- CreateIndex
|
|
+CREATE UNIQUE INDEX "Session_id_key" ON "Session"("id");
|
|
+
|
|
+-- CreateIndex
|
|
+CREATE INDEX "Session_userId_idx" ON "Session"("userId");
|
|
+
|
|
+-- AddForeignKey
|
|
+ALTER TABLE "GptResponse" ADD CONSTRAINT "GptResponse_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
|
|
+
|
|
+-- AddForeignKey
|
|
+ALTER TABLE "Task" ADD CONSTRAINT "Task_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
|
|
+
|
|
+-- AddForeignKey
|
|
+ALTER TABLE "File" ADD CONSTRAINT "File_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
|
|
+
|
|
+-- AddForeignKey
|
|
+ALTER TABLE "PageViewSource" ADD CONSTRAINT "PageViewSource_dailyStatsId_fkey" FOREIGN KEY ("dailyStatsId") REFERENCES "DailyStats"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
|
+
|
|
+-- AddForeignKey
|
|
+ALTER TABLE "ContactFormMessage" ADD CONSTRAINT "ContactFormMessage_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
|
|
+
|
|
+-- AddForeignKey
|
|
+ALTER TABLE "Auth" ADD CONSTRAINT "Auth_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
+
|
|
+-- AddForeignKey
|
|
+ALTER TABLE "AuthIdentity" ADD CONSTRAINT "AuthIdentity_authId_fkey" FOREIGN KEY ("authId") REFERENCES "Auth"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
+
|
|
+-- AddForeignKey
|
|
+ALTER TABLE "Session" ADD CONSTRAINT "Session_userId_fkey" FOREIGN KEY ("userId") REFERENCES "Auth"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|