migrate to app dir and ssr

This commit is contained in:
Carl-Gerhard Lindesvärd
2024-01-20 22:54:38 +01:00
parent 719a82f1c4
commit 308ae98472
194 changed files with 4706 additions and 2194 deletions

View File

@@ -0,0 +1,110 @@
/*
Warnings:
- The primary key for the `dashboards` table will be changed. If it partially fails, the table could be left without primary key constraint.
- You are about to drop the column `slug` on the `dashboards` table. All the data in the column will be lost.
- The primary key for the `organizations` table will be changed. If it partially fails, the table could be left without primary key constraint.
- You are about to drop the column `slug` on the `organizations` table. All the data in the column will be lost.
- The primary key for the `projects` table will be changed. If it partially fails, the table could be left without primary key constraint.
- You are about to drop the column `slug` on the `projects` table. All the data in the column will be lost.
*/
-- DropForeignKey
ALTER TABLE "clients" DROP CONSTRAINT "clients_organization_id_fkey";
-- DropForeignKey
ALTER TABLE "clients" DROP CONSTRAINT "clients_project_id_fkey";
-- DropForeignKey
ALTER TABLE "dashboards" DROP CONSTRAINT "dashboards_project_id_fkey";
-- DropForeignKey
ALTER TABLE "events" DROP CONSTRAINT "events_project_id_fkey";
-- DropForeignKey
ALTER TABLE "profiles" DROP CONSTRAINT "profiles_project_id_fkey";
-- DropForeignKey
ALTER TABLE "projects" DROP CONSTRAINT "projects_organization_id_fkey";
-- DropForeignKey
ALTER TABLE "reports" DROP CONSTRAINT "reports_dashboard_id_fkey";
-- DropForeignKey
ALTER TABLE "reports" DROP CONSTRAINT "reports_project_id_fkey";
-- DropForeignKey
ALTER TABLE "users" DROP CONSTRAINT "users_organization_id_fkey";
-- DropIndex
DROP INDEX "dashboards_slug_key";
-- DropIndex
DROP INDEX "organizations_slug_key";
-- DropIndex
DROP INDEX "projects_slug_key";
-- AlterTable
ALTER TABLE "clients" ALTER COLUMN "project_id" SET DATA TYPE TEXT,
ALTER COLUMN "organization_id" SET DATA TYPE TEXT;
-- AlterTable
ALTER TABLE "dashboards" DROP CONSTRAINT "dashboards_pkey",
DROP COLUMN "slug",
ALTER COLUMN "id" SET DATA TYPE TEXT,
ALTER COLUMN "project_id" SET DATA TYPE TEXT,
ADD CONSTRAINT "dashboards_pkey" PRIMARY KEY ("id");
-- AlterTable
ALTER TABLE "events" ALTER COLUMN "project_id" SET DATA TYPE TEXT;
-- AlterTable
ALTER TABLE "organizations" DROP CONSTRAINT "organizations_pkey",
DROP COLUMN "slug",
ALTER COLUMN "id" SET DATA TYPE TEXT,
ADD CONSTRAINT "organizations_pkey" PRIMARY KEY ("id");
-- AlterTable
ALTER TABLE "profiles" ALTER COLUMN "project_id" SET DATA TYPE TEXT;
-- AlterTable
ALTER TABLE "projects" DROP CONSTRAINT "projects_pkey",
DROP COLUMN "slug",
ALTER COLUMN "id" SET DATA TYPE TEXT,
ALTER COLUMN "organization_id" SET DATA TYPE TEXT,
ADD CONSTRAINT "projects_pkey" PRIMARY KEY ("id");
-- AlterTable
ALTER TABLE "reports" ALTER COLUMN "project_id" SET DATA TYPE TEXT,
ALTER COLUMN "dashboard_id" SET DATA TYPE TEXT;
-- AlterTable
ALTER TABLE "users" ALTER COLUMN "organization_id" SET DATA TYPE TEXT;
-- AddForeignKey
ALTER TABLE "projects" ADD CONSTRAINT "projects_organization_id_fkey" FOREIGN KEY ("organization_id") REFERENCES "organizations"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "users" ADD CONSTRAINT "users_organization_id_fkey" FOREIGN KEY ("organization_id") REFERENCES "organizations"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "events" ADD CONSTRAINT "events_project_id_fkey" FOREIGN KEY ("project_id") REFERENCES "projects"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "profiles" ADD CONSTRAINT "profiles_project_id_fkey" FOREIGN KEY ("project_id") REFERENCES "projects"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "clients" ADD CONSTRAINT "clients_project_id_fkey" FOREIGN KEY ("project_id") REFERENCES "projects"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "clients" ADD CONSTRAINT "clients_organization_id_fkey" FOREIGN KEY ("organization_id") REFERENCES "organizations"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "dashboards" ADD CONSTRAINT "dashboards_project_id_fkey" FOREIGN KEY ("project_id") REFERENCES "projects"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "reports" ADD CONSTRAINT "reports_project_id_fkey" FOREIGN KEY ("project_id") REFERENCES "projects"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "reports" ADD CONSTRAINT "reports_dashboard_id_fkey" FOREIGN KEY ("dashboard_id") REFERENCES "dashboards"("id") ON DELETE RESTRICT ON UPDATE CASCADE;

View File

@@ -0,0 +1,15 @@
-- CreateTable
CREATE TABLE "recent_dashboards" (
"id" TEXT NOT NULL DEFAULT gen_random_uuid(),
"name" TEXT NOT NULL,
"project_id" TEXT NOT NULL,
"organization_id" TEXT NOT NULL,
"dashboard_id" TEXT NOT NULL,
"user_id" TEXT NOT NULL,
"userId" UUID NOT NULL,
CONSTRAINT "recent_dashboards_pkey" PRIMARY KEY ("id")
);
-- AddForeignKey
ALTER TABLE "recent_dashboards" ADD CONSTRAINT "recent_dashboards_userId_fkey" FOREIGN KEY ("userId") REFERENCES "users"("id") ON DELETE RESTRICT ON UPDATE CASCADE;

View File

@@ -0,0 +1,18 @@
/*
Warnings:
- You are about to drop the column `userId` on the `recent_dashboards` table. All the data in the column will be lost.
- Changed the type of `user_id` on the `recent_dashboards` table. No cast exists, the column would be dropped and recreated, which cannot be done if there is data, since the column is required.
*/
-- DropForeignKey
ALTER TABLE "recent_dashboards" DROP CONSTRAINT "recent_dashboards_userId_fkey";
-- AlterTable
ALTER TABLE "recent_dashboards" DROP COLUMN "userId",
ADD COLUMN "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
DROP COLUMN "user_id",
ADD COLUMN "user_id" UUID NOT NULL;
-- AddForeignKey
ALTER TABLE "recent_dashboards" ADD CONSTRAINT "recent_dashboards_user_id_fkey" FOREIGN KEY ("user_id") REFERENCES "users"("id") ON DELETE RESTRICT ON UPDATE CASCADE;

View File

@@ -0,0 +1,5 @@
-- AddForeignKey
ALTER TABLE "recent_dashboards" ADD CONSTRAINT "recent_dashboards_project_id_fkey" FOREIGN KEY ("project_id") REFERENCES "projects"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "recent_dashboards" ADD CONSTRAINT "recent_dashboards_dashboard_id_fkey" FOREIGN KEY ("dashboard_id") REFERENCES "dashboards"("id") ON DELETE RESTRICT ON UPDATE CASCADE;

View File

@@ -0,0 +1,8 @@
/*
Warnings:
- You are about to drop the column `name` on the `recent_dashboards` table. All the data in the column will be lost.
*/
-- AlterTable
ALTER TABLE "recent_dashboards" DROP COLUMN "name";

View File

@@ -0,0 +1,14 @@
-- CreateTable
CREATE TABLE "invites" (
"id" UUID NOT NULL DEFAULT gen_random_uuid(),
"email" TEXT NOT NULL,
"organization_id" TEXT NOT NULL,
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updatedAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"accepted" BOOLEAN NOT NULL DEFAULT false,
CONSTRAINT "invites_pkey" PRIMARY KEY ("id")
);
-- AddForeignKey
ALTER TABLE "invites" ADD CONSTRAINT "invites_organization_id_fkey" FOREIGN KEY ("organization_id") REFERENCES "organizations"("id") ON DELETE RESTRICT ON UPDATE CASCADE;

View File

@@ -0,0 +1,2 @@
-- AlterTable
ALTER TABLE "reports" ADD COLUMN "line_type" TEXT NOT NULL DEFAULT 'monotone';

View File

@@ -11,33 +11,33 @@ datasource db {
}
model Organization {
id String @id @default(dbgenerated("gen_random_uuid()")) @db.Uuid
id String @id @default(dbgenerated("gen_random_uuid()"))
name String
slug String @unique @default(dbgenerated("gen_random_uuid()"))
projects Project[]
users User[]
createdAt DateTime @default(now())
updatedAt DateTime @default(now()) @updatedAt
clients Client[]
Invite Invite[]
@@map("organizations")
}
model Project {
id String @id @default(dbgenerated("gen_random_uuid()")) @db.Uuid
id String @id @default(dbgenerated("gen_random_uuid()"))
name String
slug String @unique @default(dbgenerated("gen_random_uuid()"))
organization_id String @db.Uuid
organization_id String
organization Organization @relation(fields: [organization_id], references: [id])
events Event[]
profiles Profile[]
clients Client[]
createdAt DateTime @default(now())
updatedAt DateTime @default(now()) @updatedAt
reports Report[]
dashboards Dashboard[]
createdAt DateTime @default(now())
updatedAt DateTime @default(now()) @updatedAt
reports Report[]
dashboards Dashboard[]
RecentDashboards RecentDashboards[]
@@map("projects")
}
@@ -47,11 +47,12 @@ model User {
name String
email String
password String
organization_id String @db.Uuid
organization_id String
organization Organization @relation(fields: [organization_id], references: [id])
createdAt DateTime @default(now())
updatedAt DateTime @default(now()) @updatedAt
createdAt DateTime @default(now())
updatedAt DateTime @default(now()) @updatedAt
RecentDashboards RecentDashboards[]
@@map("users")
}
@@ -60,7 +61,7 @@ model Event {
id String @id @default(dbgenerated("gen_random_uuid()")) @db.Uuid
name String
properties Json
project_id String @db.Uuid
project_id String
project Project @relation(fields: [project_id], references: [id])
profile_id String? @db.Uuid
@@ -80,7 +81,7 @@ model Profile {
email String?
avatar String?
properties Json
project_id String @db.Uuid
project_id String
project Project @relation(fields: [project_id], references: [id])
events Event[]
@@ -103,9 +104,9 @@ model Client {
id String @id @default(dbgenerated("gen_random_uuid()")) @db.Uuid
name String
secret String?
project_id String @db.Uuid
project_id String
project Project @relation(fields: [project_id], references: [id])
organization_id String @db.Uuid
organization_id String
organization Organization @relation(fields: [organization_id], references: [id])
cors String @default("*")
@@ -115,6 +116,20 @@ model Client {
@@map("clients")
}
model RecentDashboards {
id String @id @default(dbgenerated("gen_random_uuid()"))
project_id String
project Project @relation(fields: [project_id], references: [id])
organization_id String
dashboard_id String
dashboard Dashboard @relation(fields: [dashboard_id], references: [id])
user_id String @db.Uuid
user User @relation(fields: [user_id], references: [id])
createdAt DateTime @default(now())
@@map("recent_dashboards")
}
enum Interval {
hour
day
@@ -132,15 +147,15 @@ enum ChartType {
}
model Dashboard {
id String @id @default(dbgenerated("gen_random_uuid()")) @db.Uuid
id String @id @default(dbgenerated("gen_random_uuid()"))
name String
slug String @unique @default(dbgenerated("gen_random_uuid()"))
project_id String @db.Uuid
project_id String
project Project @relation(fields: [project_id], references: [id])
reports Report[]
createdAt DateTime @default(now())
updatedAt DateTime @default(now()) @updatedAt
createdAt DateTime @default(now())
updatedAt DateTime @default(now()) @updatedAt
RecentDashboards RecentDashboards[]
@@map("dashboards")
}
@@ -151,12 +166,13 @@ model Report {
interval Interval
range String @default("1m")
chart_type ChartType
line_type String @default("monotone")
breakdowns Json
events Json
project_id String @db.Uuid
project_id String
project Project @relation(fields: [project_id], references: [id])
dashboard_id String @db.Uuid
dashboard_id String
dashboard Dashboard @relation(fields: [dashboard_id], references: [id])
createdAt DateTime @default(now())
@@ -164,3 +180,17 @@ model Report {
@@map("reports")
}
model Invite {
id String @id @default(dbgenerated("gen_random_uuid()")) @db.Uuid
email String
organization_id String
organization Organization @relation(fields: [organization_id], references: [id])
createdAt DateTime @default(now())
updatedAt DateTime @default(now()) @updatedAt
accepted Boolean @default(false)
@@map("invites")
}