Add space member model (#1780)

This commit is contained in:
Luke Vella 2025-06-16 23:34:27 +02:00 committed by GitHub
parent dd9bdbcfc4
commit 424f39ae6b
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
8 changed files with 200 additions and 68 deletions

View file

@ -0,0 +1,26 @@
-- CreateEnum
CREATE TYPE "SpaceMemberRole" AS ENUM ('OWNER', 'ADMIN', 'MEMBER');
-- CreateTable
CREATE TABLE "space_members" (
"id" TEXT NOT NULL,
"space_id" TEXT NOT NULL,
"user_id" TEXT NOT NULL,
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updated_at" TIMESTAMP(3) NOT NULL,
"role" "SpaceMemberRole" NOT NULL DEFAULT 'MEMBER',
CONSTRAINT "space_members_pkey" PRIMARY KEY ("id")
);
-- CreateIndex
CREATE INDEX "space_members_space_id_idx" ON "space_members"("space_id");
-- CreateIndex
CREATE UNIQUE INDEX "space_members_space_id_user_id_key" ON "space_members"("space_id", "user_id");
-- AddForeignKey
ALTER TABLE "space_members" ADD CONSTRAINT "space_members_space_id_fkey" FOREIGN KEY ("space_id") REFERENCES "spaces"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "space_members" ADD CONSTRAINT "space_members_user_id_fkey" FOREIGN KEY ("user_id") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE CASCADE;

View file

@ -0,0 +1,15 @@
-- Create space members with OWNER role for existing spaces
INSERT INTO "space_members" ("id", "space_id", "user_id", "created_at", "updated_at", "role")
SELECT
gen_random_uuid(),
id as space_id,
owner_id as user_id,
NOW() as created_at,
NOW() as updated_at,
'OWNER' as role
FROM "spaces"
WHERE NOT EXISTS (
SELECT 1 FROM "space_members"
WHERE "space_members"."space_id" = "spaces"."id"
AND "space_members"."user_id" = "spaces"."owner_id"
);