diff --git a/packages/db/migrations/20250923143130_AddWorkspaceInviteLinks.sql b/packages/db/migrations/20250923211958_AddWorkspaceInviteLinks.sql similarity index 52% rename from packages/db/migrations/20250923143130_AddWorkspaceInviteLinks.sql rename to packages/db/migrations/20250923211958_AddWorkspaceInviteLinks.sql index 911ffa8f..98fc4f50 100644 --- a/packages/db/migrations/20250923143130_AddWorkspaceInviteLinks.sql +++ b/packages/db/migrations/20250923211958_AddWorkspaceInviteLinks.sql @@ -1,11 +1,16 @@ CREATE TYPE "public"."invite_link_status" AS ENUM('active', 'inactive');--> statement-breakpoint CREATE TABLE IF NOT EXISTS "workspace_invite_links" ( "id" bigserial PRIMARY KEY NOT NULL, + "publicId" varchar(12) NOT NULL, "workspaceId" bigint NOT NULL, "code" varchar(12) NOT NULL, "status" "invite_link_status" DEFAULT 'active' NOT NULL, "expiresAt" timestamp, "createdAt" timestamp DEFAULT now() NOT NULL, + "createdBy" uuid, + "updatedAt" timestamp, + "updatedBy" uuid, + CONSTRAINT "workspace_invite_links_publicId_unique" UNIQUE("publicId"), CONSTRAINT "workspace_invite_links_code_unique" UNIQUE("code") ); --> statement-breakpoint @@ -15,3 +20,15 @@ DO $$ BEGIN EXCEPTION WHEN duplicate_object THEN null; END $$; +--> statement-breakpoint +DO $$ BEGIN + ALTER TABLE "workspace_invite_links" ADD CONSTRAINT "workspace_invite_links_createdBy_user_id_fk" FOREIGN KEY ("createdBy") REFERENCES "public"."user"("id") ON DELETE set null ON UPDATE no action; +EXCEPTION + WHEN duplicate_object THEN null; +END $$; +--> statement-breakpoint +DO $$ BEGIN + ALTER TABLE "workspace_invite_links" ADD CONSTRAINT "workspace_invite_links_updatedBy_user_id_fk" FOREIGN KEY ("updatedBy") REFERENCES "public"."user"("id") ON DELETE set null ON UPDATE no action; +EXCEPTION + WHEN duplicate_object THEN null; +END $$; diff --git a/packages/db/migrations/meta/20250923143130_snapshot.json b/packages/db/migrations/meta/20250923211958_snapshot.json similarity index 97% rename from packages/db/migrations/meta/20250923143130_snapshot.json rename to packages/db/migrations/meta/20250923211958_snapshot.json index 2437bdf1..e1c6b210 100644 --- a/packages/db/migrations/meta/20250923143130_snapshot.json +++ b/packages/db/migrations/meta/20250923211958_snapshot.json @@ -1,5 +1,5 @@ { - "id": "1191cdae-d6ae-4120-959f-533391f11bdd", + "id": "50c69532-017e-43df-8969-7c811cbc1fda", "prevId": "114f5db6-01fd-41b6-8125-e23f84424560", "version": "7", "dialect": "postgresql", @@ -2534,6 +2534,12 @@ "primaryKey": true, "notNull": true }, + "publicId": { + "name": "publicId", + "type": "varchar(12)", + "primaryKey": false, + "notNull": true + }, "workspaceId": { "name": "workspaceId", "type": "bigint", @@ -2566,6 +2572,24 @@ "primaryKey": false, "notNull": true, "default": "now()" + }, + "createdBy": { + "name": "createdBy", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "updatedAt": { + "name": "updatedAt", + "type": "timestamp", + "primaryKey": false, + "notNull": false + }, + "updatedBy": { + "name": "updatedBy", + "type": "uuid", + "primaryKey": false, + "notNull": false } }, "indexes": {}, @@ -2582,10 +2606,43 @@ ], "onDelete": "cascade", "onUpdate": "no action" + }, + "workspace_invite_links_createdBy_user_id_fk": { + "name": "workspace_invite_links_createdBy_user_id_fk", + "tableFrom": "workspace_invite_links", + "tableTo": "user", + "columnsFrom": [ + "createdBy" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "workspace_invite_links_updatedBy_user_id_fk": { + "name": "workspace_invite_links_updatedBy_user_id_fk", + "tableFrom": "workspace_invite_links", + "tableTo": "user", + "columnsFrom": [ + "updatedBy" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" } }, "compositePrimaryKeys": {}, "uniqueConstraints": { + "workspace_invite_links_publicId_unique": { + "name": "workspace_invite_links_publicId_unique", + "nullsNotDistinct": false, + "columns": [ + "publicId" + ] + }, "workspace_invite_links_code_unique": { "name": "workspace_invite_links_code_unique", "nullsNotDistinct": false, diff --git a/packages/db/migrations/meta/_journal.json b/packages/db/migrations/meta/_journal.json index 64523bdd..b968bd35 100644 --- a/packages/db/migrations/meta/_journal.json +++ b/packages/db/migrations/meta/_journal.json @@ -110,8 +110,8 @@ { "idx": 15, "version": "7", - "when": 1758637890146, - "tag": "20250923143130_AddWorkspaceInviteLinks", + "when": 1758662398166, + "tag": "20250923211958_AddWorkspaceInviteLinks", "breakpoints": true } ]