diff --git a/prisma/migrations/.gitkeep b/prisma/migrations/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/prisma/migrations/0001_init/migration.sql b/prisma/migrations/0001_init/migration.sql deleted file mode 100644 index 54f181d..0000000 --- a/prisma/migrations/0001_init/migration.sql +++ /dev/null @@ -1,112 +0,0 @@ --- Initial migration for RayLab Core (PostgreSQL) --- Requires: CREATE EXTENSION IF NOT EXISTS pgcrypto; (for gen_random_uuid()) - -BEGIN; - --- Extension for UUID generation -CREATE EXTENSION IF NOT EXISTS "pgcrypto"; - --- Enum types -DO $$ BEGIN - IF NOT EXISTS (SELECT 1 FROM pg_type WHERE typname = 'userrolesource') THEN - CREATE TYPE "UserRoleSource" AS ENUM ('AUTHENTIK', 'SYSTEM'); - END IF; -END $$; - --- Users -CREATE TABLE IF NOT EXISTS "User" ( - id uuid PRIMARY KEY DEFAULT gen_random_uuid(), - authentik_id text UNIQUE, - authentik_user_id text UNIQUE, - authentik_subject text UNIQUE, - username varchar(255) UNIQUE, - email varchar(320) UNIQUE, - name varchar(255), - picture text, - is_active boolean NOT NULL DEFAULT true, - deleted_at timestamptz, - last_seen_at timestamptz, - last_synced_at timestamptz, - sync_status text, - storage_quota bigint DEFAULT 10737418240, - storage_used bigint DEFAULT 0, - metadata jsonb, - last_group_hash text, - created_at timestamptz NOT NULL DEFAULT now(), - updated_at timestamptz NOT NULL DEFAULT now() -); -CREATE INDEX IF NOT EXISTS idx_user_authentik_id ON "User" (authentik_id); -CREATE INDEX IF NOT EXISTS idx_user_username ON "User" (username); -CREATE INDEX IF NOT EXISTS idx_user_email ON "User" (email); - --- Roles -CREATE TABLE IF NOT EXISTS "Role" ( - id uuid PRIMARY KEY DEFAULT gen_random_uuid(), - code varchar(100) NOT NULL UNIQUE, - name varchar(255) NOT NULL, - display_name varchar(255), - description text, - is_default boolean NOT NULL DEFAULT false, - created_at timestamptz NOT NULL DEFAULT now(), - updated_at timestamptz NOT NULL DEFAULT now() -); - --- Permissions -CREATE TABLE IF NOT EXISTS "Permission" ( - id uuid PRIMARY KEY DEFAULT gen_random_uuid(), - code varchar(150) NOT NULL UNIQUE, - name varchar(255) NOT NULL, - display_name varchar(255), - description text, - created_at timestamptz NOT NULL DEFAULT now(), - updated_at timestamptz NOT NULL DEFAULT now() -); - --- RolePermission -CREATE TABLE IF NOT EXISTS "RolePermission" ( - id uuid PRIMARY KEY DEFAULT gen_random_uuid(), - role_id uuid NOT NULL REFERENCES "Role"(id) ON DELETE CASCADE, - permission_id uuid NOT NULL REFERENCES "Permission"(id) ON DELETE CASCADE, - created_at timestamptz NOT NULL DEFAULT now(), - CONSTRAINT uq_role_permission UNIQUE (role_id, permission_id) -); -CREATE INDEX IF NOT EXISTS idx_rolepermission_role_id ON "RolePermission" (role_id); -CREATE INDEX IF NOT EXISTS idx_rolepermission_permission_id ON "RolePermission" (permission_id); - --- UserRole -CREATE TABLE IF NOT EXISTS "UserRole" ( - id uuid PRIMARY KEY DEFAULT gen_random_uuid(), - user_id uuid NOT NULL REFERENCES "User"(id) ON DELETE CASCADE, - role_id uuid NOT NULL REFERENCES "Role"(id) ON DELETE CASCADE, - source "UserRoleSource" NOT NULL DEFAULT 'AUTHENTIK', - synced_at timestamptz NOT NULL DEFAULT now(), - created_at timestamptz NOT NULL DEFAULT now(), - CONSTRAINT uq_user_role UNIQUE (user_id, role_id) -); -CREATE INDEX IF NOT EXISTS idx_userrole_user_id ON "UserRole" (user_id); -CREATE INDEX IF NOT EXISTS idx_userrole_role_id ON "UserRole" (role_id); - --- AuthGroupRoleMapping -CREATE TABLE IF NOT EXISTS "AuthGroupRoleMapping" ( - id uuid PRIMARY KEY DEFAULT gen_random_uuid(), - auth_group varchar(255) NOT NULL, - role_id uuid NOT NULL REFERENCES "Role"(id) ON DELETE CASCADE, - created_at timestamptz NOT NULL DEFAULT now(), - updated_at timestamptz NOT NULL DEFAULT now() -); -CREATE INDEX IF NOT EXISTS idx_authgroup_name ON "AuthGroupRoleMapping" (auth_group); - --- AuditLog -CREATE TABLE IF NOT EXISTS "AuditLog" ( - id uuid PRIMARY KEY DEFAULT gen_random_uuid(), - user_id uuid REFERENCES "User"(id) ON DELETE SET NULL, - action varchar(200) NOT NULL, - resource varchar(200), - resource_id text, - details jsonb, - created_at timestamptz NOT NULL DEFAULT now() -); -CREATE INDEX IF NOT EXISTS idx_auditlog_user_id ON "AuditLog" (user_id); -CREATE INDEX IF NOT EXISTS idx_auditlog_action ON "AuditLog" (action); - -COMMIT; diff --git a/prisma/migrations/0002_phase4_init/migration.sql b/prisma/migrations/0002_phase4_init/migration.sql deleted file mode 100644 index 7c13bc6..0000000 --- a/prisma/migrations/0002_phase4_init/migration.sql +++ /dev/null @@ -1,37 +0,0 @@ --- Phase 4 migration: add ScheduledJob and MediaObject - -BEGIN; - --- ScheduledJob -CREATE TABLE IF NOT EXISTS "ScheduledJob" ( - id uuid PRIMARY KEY DEFAULT gen_random_uuid(), - name varchar(255) NOT NULL, - payload jsonb, - cron varchar(255), - run_at timestamptz, - status varchar(50) NOT NULL DEFAULT 'pending', - attempts integer NOT NULL DEFAULT 0, - last_run_at timestamptz, - created_at timestamptz NOT NULL DEFAULT now(), - updated_at timestamptz NOT NULL DEFAULT now() -); -CREATE INDEX IF NOT EXISTS idx_scheduledjob_name ON "ScheduledJob" (name); -CREATE INDEX IF NOT EXISTS idx_scheduledjob_status ON "ScheduledJob" (status); - --- MediaObject -CREATE TABLE IF NOT EXISTS "MediaObject" ( - id uuid PRIMARY KEY DEFAULT gen_random_uuid(), - owner_user_id uuid REFERENCES "User"(id) ON DELETE SET NULL, - storage_key varchar(1024) NOT NULL, - filename varchar(1024), - mime_type varchar(255), - size bigint, - is_public boolean NOT NULL DEFAULT false, - metadata jsonb, - created_at timestamptz NOT NULL DEFAULT now(), - updated_at timestamptz NOT NULL DEFAULT now() -); -CREATE INDEX IF NOT EXISTS idx_media_owner_user_id ON "MediaObject" (owner_user_id); -CREATE INDEX IF NOT EXISTS idx_media_storage_key ON "MediaObject" (storage_key); - -COMMIT; diff --git a/prisma/migrations/20260730165554_permission/migration.sql b/prisma/migrations/20260730165554_permission/migration.sql deleted file mode 100644 index 23e8e28..0000000 --- a/prisma/migrations/20260730165554_permission/migration.sql +++ /dev/null @@ -1,93 +0,0 @@ --- CreateTable -CREATE TABLE "User" ( - "id" TEXT NOT NULL, - "username" TEXT NOT NULL, - "email" TEXT NOT NULL, - "password" TEXT NOT NULL, - "isActive" BOOLEAN NOT NULL DEFAULT true, - "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, - "updatedAt" TIMESTAMP(3) NOT NULL, - - CONSTRAINT "User_pkey" PRIMARY KEY ("id") -); - --- CreateTable -CREATE TABLE "Role" ( - "id" TEXT NOT NULL, - "code" TEXT NOT NULL, - "name" TEXT NOT NULL, - "description" TEXT, - "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, - "updatedAt" TIMESTAMP(3) NOT NULL, - - CONSTRAINT "Role_pkey" PRIMARY KEY ("id") -); - --- CreateTable -CREATE TABLE "Permission" ( - "id" TEXT NOT NULL, - "code" TEXT NOT NULL, - "name" TEXT NOT NULL, - "description" TEXT, - "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, - "updatedAt" TIMESTAMP(3) NOT NULL, - - CONSTRAINT "Permission_pkey" PRIMARY KEY ("id") -); - --- CreateTable -CREATE TABLE "UserRole" ( - "userId" TEXT NOT NULL, - "roleId" TEXT NOT NULL, - "assignedAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, - - CONSTRAINT "UserRole_pkey" PRIMARY KEY ("userId","roleId") -); - --- CreateTable -CREATE TABLE "RolePermission" ( - "roleId" TEXT NOT NULL, - "permissionId" TEXT NOT NULL, - "assignedAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, - - CONSTRAINT "RolePermission_pkey" PRIMARY KEY ("roleId","permissionId") -); - --- CreateTable -CREATE TABLE "UserPermission" ( - "userId" TEXT NOT NULL, - "permissionId" TEXT NOT NULL, - "assignedAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, - - CONSTRAINT "UserPermission_pkey" PRIMARY KEY ("userId","permissionId") -); - --- CreateIndex -CREATE UNIQUE INDEX "User_username_key" ON "User"("username"); - --- CreateIndex -CREATE UNIQUE INDEX "User_email_key" ON "User"("email"); - --- CreateIndex -CREATE UNIQUE INDEX "Role_code_key" ON "Role"("code"); - --- CreateIndex -CREATE UNIQUE INDEX "Permission_code_key" ON "Permission"("code"); - --- AddForeignKey -ALTER TABLE "UserRole" ADD CONSTRAINT "UserRole_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE "UserRole" ADD CONSTRAINT "UserRole_roleId_fkey" FOREIGN KEY ("roleId") REFERENCES "Role"("id") ON DELETE CASCADE ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE "RolePermission" ADD CONSTRAINT "RolePermission_roleId_fkey" FOREIGN KEY ("roleId") REFERENCES "Role"("id") ON DELETE CASCADE ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE "RolePermission" ADD CONSTRAINT "RolePermission_permissionId_fkey" FOREIGN KEY ("permissionId") REFERENCES "Permission"("id") ON DELETE CASCADE ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE "UserPermission" ADD CONSTRAINT "UserPermission_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE "UserPermission" ADD CONSTRAINT "UserPermission_permissionId_fkey" FOREIGN KEY ("permissionId") REFERENCES "Permission"("id") ON DELETE CASCADE ON UPDATE CASCADE; diff --git a/prisma/migrations/20260801084138_change/migration.sql b/prisma/migrations/20260801084138_change/migration.sql deleted file mode 100644 index f73805a..0000000 --- a/prisma/migrations/20260801084138_change/migration.sql +++ /dev/null @@ -1,16 +0,0 @@ -/* - Warnings: - - - Added the required column `assignedBy` to the `RolePermission` table without a default value. This is not possible if the table is not empty. - - Added the required column `assignedBy` to the `UserPermission` table without a default value. This is not possible if the table is not empty. - - Added the required column `assignedBy` to the `UserRole` table without a default value. This is not possible if the table is not empty. - -*/ --- AlterTable -ALTER TABLE "RolePermission" ADD COLUMN "assignedBy" TEXT NOT NULL; - --- AlterTable -ALTER TABLE "UserPermission" ADD COLUMN "assignedBy" TEXT NOT NULL; - --- AlterTable -ALTER TABLE "UserRole" ADD COLUMN "assignedBy" TEXT NOT NULL; diff --git a/prisma/migrations/20260801101438_add_role_is_default/migration.sql b/prisma/migrations/20260801101438_add_role_is_default/migration.sql deleted file mode 100644 index dabc294..0000000 --- a/prisma/migrations/20260801101438_add_role_is_default/migration.sql +++ /dev/null @@ -1,2 +0,0 @@ --- AlterTable -ALTER TABLE "Role" ADD COLUMN "isDefault" BOOLEAN NOT NULL DEFAULT false; diff --git a/prisma/migrations/20260801101841_add_authentik_id/migration.sql b/prisma/migrations/20260801101841_add_authentik_id/migration.sql deleted file mode 100644 index aa49398..0000000 --- a/prisma/migrations/20260801101841_add_authentik_id/migration.sql +++ /dev/null @@ -1,11 +0,0 @@ -/* - Warnings: - - - A unique constraint covering the columns `[authentikId]` on the table `User` will be added. If there are existing duplicate values, this will fail. - -*/ --- AlterTable -ALTER TABLE "User" ADD COLUMN "authentikId" TEXT; - --- CreateIndex -CREATE UNIQUE INDEX "User_authentikId_key" ON "User"("authentikId"); diff --git a/prisma/migrations/20260801104311_add_deleted_at/migration.sql b/prisma/migrations/20260801104311_add_deleted_at/migration.sql deleted file mode 100644 index a9d12c0..0000000 --- a/prisma/migrations/20260801104311_add_deleted_at/migration.sql +++ /dev/null @@ -1,10 +0,0 @@ -/* - Warnings: - - - You are about to drop the column `password` on the `User` table. All the data in the column will be lost. - -*/ --- AlterTable -ALTER TABLE "User" DROP COLUMN "password", -ADD COLUMN "deletedAt" TIMESTAMP(3), -ADD COLUMN "lastSeenAt" TIMESTAMP(3); diff --git a/prisma/migrations/20260801132311_add_authentik_fields/migration.sql b/prisma/migrations/20260801132311_add_authentik_fields/migration.sql deleted file mode 100644 index 32ee861..0000000 --- a/prisma/migrations/20260801132311_add_authentik_fields/migration.sql +++ /dev/null @@ -1,15 +0,0 @@ -/* - Warnings: - - - A unique constraint covering the columns `[authentikUserId]` on the table `User` will be added. If there are existing duplicate values, this will fail. - - A unique constraint covering the columns `[authentikSubject]` on the table `User` will be added. If there are existing duplicate values, this will fail. - -*/ --- AlterTable -ALTER TABLE "User" ALTER COLUMN "lastSyncedAt" SET DATA TYPE TIMESTAMP(3); - --- CreateIndex -CREATE UNIQUE INDEX "User_authentikUserId_key" ON "User"("authentikUserId"); - --- CreateIndex -CREATE UNIQUE INDEX "User_authentikSubject_key" ON "User"("authentikSubject"); diff --git a/prisma/migrations/20260802_add_application/migration.sql b/prisma/migrations/20260802_add_application/migration.sql deleted file mode 100644 index ba75c12..0000000 --- a/prisma/migrations/20260802_add_application/migration.sql +++ /dev/null @@ -1,18 +0,0 @@ --- Migration: add Application table - -CREATE TABLE IF NOT EXISTS "Application" ( - "id" uuid PRIMARY KEY DEFAULT gen_random_uuid(), - "code" varchar(100) NOT NULL UNIQUE, - "name" varchar(255) NOT NULL, - "description" text, - "icon" text, - "url" text, - "applicationsClaim" varchar(255) NOT NULL UNIQUE, - "isActive" boolean NOT NULL DEFAULT true, - "displayOrder" integer NOT NULL DEFAULT 0, - "createdAt" timestamptz NOT NULL DEFAULT now(), - "updatedAt" timestamptz NOT NULL DEFAULT now() -); - -CREATE INDEX IF NOT EXISTS "Application_code_idx" ON "Application" ("code"); -CREATE INDEX IF NOT EXISTS "Application_applicationsClaim_idx" ON "Application" ("applicationsClaim"); diff --git a/prisma/migrations/20260802_add_authentik_fields/migration.sql b/prisma/migrations/20260802_add_authentik_fields/migration.sql deleted file mode 100644 index fc9ffb9..0000000 --- a/prisma/migrations/20260802_add_authentik_fields/migration.sql +++ /dev/null @@ -1,17 +0,0 @@ --- Migration: add_authentik_fields - -ALTER TABLE "User" -ADD COLUMN IF NOT EXISTS "authentikUserId" TEXT; - -ALTER TABLE "User" -ADD COLUMN IF NOT EXISTS "authentikSubject" TEXT; - -ALTER TABLE "User" -ADD COLUMN IF NOT EXISTS "lastSyncedAt" TIMESTAMP; - -ALTER TABLE "User" -ADD COLUMN IF NOT EXISTS "syncStatus" TEXT; - --- Optional: add unique constraints if desired --- DO NOT add unique constraints without verifying existing data --- ALTER TABLE "User" ADD CONSTRAINT "User_authentikUserId_key" UNIQUE ("authentikUserId"); diff --git a/prisma/migrations/20260803160408_init/migration.sql b/prisma/migrations/20260803160408_init/migration.sql new file mode 100644 index 0000000..8d9d1ce --- /dev/null +++ b/prisma/migrations/20260803160408_init/migration.sql @@ -0,0 +1,277 @@ +-- CreateEnum +CREATE TYPE "UserRoleSource" AS ENUM ('AUTHENTIK', 'SYSTEM'); + +-- CreateTable +CREATE TABLE "User" ( + "id" UUID NOT NULL, + "authentikId" TEXT, + "authentikUserId" TEXT, + "authentikSubject" TEXT, + "username" VARCHAR(255), + "email" VARCHAR(320), + "name" VARCHAR(255), + "picture" TEXT, + "isActive" BOOLEAN NOT NULL DEFAULT true, + "deletedAt" TIMESTAMP(3), + "lastSeenAt" TIMESTAMP(3), + "lastSyncedAt" TIMESTAMP(3), + "syncStatus" TEXT, + "storageQuota" BIGINT DEFAULT 10737418240, + "storageUsed" BIGINT DEFAULT 0, + "metadata" JSONB, + "lastGroupHash" TEXT, + "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updatedAt" TIMESTAMP(3) NOT NULL, + + CONSTRAINT "User_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "Role" ( + "id" UUID NOT NULL, + "code" VARCHAR(100) NOT NULL, + "name" VARCHAR(255) NOT NULL, + "displayName" VARCHAR(255), + "description" TEXT, + "isDefault" BOOLEAN NOT NULL DEFAULT false, + "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updatedAt" TIMESTAMP(3) NOT NULL, + + CONSTRAINT "Role_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "Permission" ( + "id" UUID NOT NULL, + "code" VARCHAR(150) NOT NULL, + "name" VARCHAR(255) NOT NULL, + "displayName" VARCHAR(255), + "description" TEXT, + "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updatedAt" TIMESTAMP(3) NOT NULL, + + CONSTRAINT "Permission_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "RolePermission" ( + "id" UUID NOT NULL, + "roleId" UUID NOT NULL, + "permissionId" UUID NOT NULL, + "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + + CONSTRAINT "RolePermission_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "UserPermission" ( + "id" UUID NOT NULL, + "userId" UUID NOT NULL, + "permissionId" UUID NOT NULL, + "assignedBy" VARCHAR(100), + "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + + CONSTRAINT "UserPermission_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "UserRole" ( + "id" UUID NOT NULL, + "userId" UUID NOT NULL, + "roleId" UUID NOT NULL, + "source" "UserRoleSource" NOT NULL DEFAULT 'AUTHENTIK', + "syncedAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + + CONSTRAINT "UserRole_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "AuthGroupRoleMapping" ( + "id" UUID NOT NULL, + "authGroup" VARCHAR(255) NOT NULL, + "roleId" UUID NOT NULL, + "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updatedAt" TIMESTAMP(3) NOT NULL, + + CONSTRAINT "AuthGroupRoleMapping_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "AuditLog" ( + "id" UUID NOT NULL, + "userId" UUID, + "action" VARCHAR(200) NOT NULL, + "resource" VARCHAR(200), + "resourceId" TEXT, + "details" JSONB, + "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + + CONSTRAINT "AuditLog_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "ScheduledJob" ( + "id" UUID NOT NULL, + "name" VARCHAR(255) NOT NULL, + "payload" JSONB, + "cron" TEXT, + "runAt" TIMESTAMP(3), + "status" VARCHAR(50) NOT NULL DEFAULT 'pending', + "attempts" INTEGER NOT NULL DEFAULT 0, + "lastRunAt" TIMESTAMP(3), + "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updatedAt" TIMESTAMP(3) NOT NULL, + + CONSTRAINT "ScheduledJob_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "MediaObject" ( + "id" UUID NOT NULL, + "ownerUserId" UUID, + "storageKey" VARCHAR(1024) NOT NULL, + "filename" VARCHAR(1024), + "mimeType" VARCHAR(255), + "size" BIGINT, + "isPublic" BOOLEAN NOT NULL DEFAULT false, + "metadata" JSONB, + "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updatedAt" TIMESTAMP(3) NOT NULL, + + CONSTRAINT "MediaObject_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "Application" ( + "id" UUID NOT NULL DEFAULT gen_random_uuid(), + "code" VARCHAR(100) NOT NULL, + "name" VARCHAR(255) NOT NULL, + "description" TEXT, + "icon" TEXT, + "url" TEXT, + "applicationsClaim" VARCHAR(255) NOT NULL, + "isActive" BOOLEAN NOT NULL DEFAULT true, + "displayOrder" INTEGER NOT NULL DEFAULT 0, + "createdAt" TIMESTAMPTZ NOT NULL DEFAULT now(), + "updatedAt" TIMESTAMPTZ NOT NULL DEFAULT now(), + + CONSTRAINT "Application_pkey" PRIMARY KEY ("id") +); + +-- CreateIndex +CREATE UNIQUE INDEX "User_authentikId_key" ON "User"("authentikId"); + +-- CreateIndex +CREATE UNIQUE INDEX "User_authentikUserId_key" ON "User"("authentikUserId"); + +-- CreateIndex +CREATE UNIQUE INDEX "User_authentikSubject_key" ON "User"("authentikSubject"); + +-- CreateIndex +CREATE UNIQUE INDEX "User_username_key" ON "User"("username"); + +-- CreateIndex +CREATE UNIQUE INDEX "User_email_key" ON "User"("email"); + +-- CreateIndex +CREATE INDEX "User_authentikId_idx" ON "User"("authentikId"); + +-- CreateIndex +CREATE INDEX "User_username_idx" ON "User"("username"); + +-- CreateIndex +CREATE INDEX "User_email_idx" ON "User"("email"); + +-- CreateIndex +CREATE UNIQUE INDEX "Role_code_key" ON "Role"("code"); + +-- CreateIndex +CREATE UNIQUE INDEX "Permission_code_key" ON "Permission"("code"); + +-- CreateIndex +CREATE INDEX "RolePermission_roleId_idx" ON "RolePermission"("roleId"); + +-- CreateIndex +CREATE INDEX "RolePermission_permissionId_idx" ON "RolePermission"("permissionId"); + +-- CreateIndex +CREATE UNIQUE INDEX "RolePermission_roleId_permissionId_key" ON "RolePermission"("roleId", "permissionId"); + +-- CreateIndex +CREATE INDEX "UserPermission_userId_idx" ON "UserPermission"("userId"); + +-- CreateIndex +CREATE INDEX "UserPermission_permissionId_idx" ON "UserPermission"("permissionId"); + +-- CreateIndex +CREATE UNIQUE INDEX "UserPermission_userId_permissionId_key" ON "UserPermission"("userId", "permissionId"); + +-- CreateIndex +CREATE INDEX "UserRole_userId_idx" ON "UserRole"("userId"); + +-- CreateIndex +CREATE INDEX "UserRole_roleId_idx" ON "UserRole"("roleId"); + +-- CreateIndex +CREATE UNIQUE INDEX "UserRole_userId_roleId_key" ON "UserRole"("userId", "roleId"); + +-- CreateIndex +CREATE INDEX "AuthGroupRoleMapping_authGroup_idx" ON "AuthGroupRoleMapping"("authGroup"); + +-- CreateIndex +CREATE INDEX "AuditLog_userId_idx" ON "AuditLog"("userId"); + +-- CreateIndex +CREATE INDEX "AuditLog_action_idx" ON "AuditLog"("action"); + +-- CreateIndex +CREATE INDEX "ScheduledJob_name_idx" ON "ScheduledJob"("name"); + +-- CreateIndex +CREATE INDEX "ScheduledJob_status_idx" ON "ScheduledJob"("status"); + +-- CreateIndex +CREATE INDEX "MediaObject_ownerUserId_idx" ON "MediaObject"("ownerUserId"); + +-- CreateIndex +CREATE INDEX "MediaObject_storageKey_idx" ON "MediaObject"("storageKey"); + +-- CreateIndex +CREATE UNIQUE INDEX "Application_code_key" ON "Application"("code"); + +-- CreateIndex +CREATE UNIQUE INDEX "Application_applicationsClaim_key" ON "Application"("applicationsClaim"); + +-- CreateIndex +CREATE INDEX "Application_code_idx" ON "Application"("code"); + +-- CreateIndex +CREATE INDEX "Application_applicationsClaim_idx" ON "Application"("applicationsClaim"); + +-- AddForeignKey +ALTER TABLE "RolePermission" ADD CONSTRAINT "RolePermission_roleId_fkey" FOREIGN KEY ("roleId") REFERENCES "Role"("id") ON DELETE CASCADE ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "RolePermission" ADD CONSTRAINT "RolePermission_permissionId_fkey" FOREIGN KEY ("permissionId") REFERENCES "Permission"("id") ON DELETE CASCADE ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "UserPermission" ADD CONSTRAINT "UserPermission_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "UserPermission" ADD CONSTRAINT "UserPermission_permissionId_fkey" FOREIGN KEY ("permissionId") REFERENCES "Permission"("id") ON DELETE CASCADE ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "UserRole" ADD CONSTRAINT "UserRole_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "UserRole" ADD CONSTRAINT "UserRole_roleId_fkey" FOREIGN KEY ("roleId") REFERENCES "Role"("id") ON DELETE CASCADE ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "AuthGroupRoleMapping" ADD CONSTRAINT "AuthGroupRoleMapping_roleId_fkey" FOREIGN KEY ("roleId") REFERENCES "Role"("id") ON DELETE CASCADE ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "AuditLog" ADD CONSTRAINT "AuditLog_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE SET NULL ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "MediaObject" ADD CONSTRAINT "MediaObject_ownerUserId_fkey" FOREIGN KEY ("ownerUserId") REFERENCES "User"("id") ON DELETE SET NULL ON UPDATE CASCADE; diff --git a/prisma/migrations/20260803_add_storage/migration.sql b/prisma/migrations/20260803_add_storage/migration.sql deleted file mode 100644 index d7df7a3..0000000 --- a/prisma/migrations/20260803_add_storage/migration.sql +++ /dev/null @@ -1,7 +0,0 @@ --- Migration: add_storage - -ALTER TABLE "User" - ADD COLUMN IF NOT EXISTS "storageQuota" bigint NOT NULL DEFAULT 10737418240; - -ALTER TABLE "User" - ADD COLUMN IF NOT EXISTS "storageUsed" bigint NOT NULL DEFAULT 0;