44 lines
1.6 KiB
SQL
44 lines
1.6 KiB
SQL
CREATE TABLE "communication_rooms" (
|
|
"id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
|
|
"tenant_id" bigint NOT NULL,
|
|
"key" text NOT NULL,
|
|
"name" text NOT NULL,
|
|
"topic" text,
|
|
"type" text DEFAULT 'room' NOT NULL,
|
|
"entity_type" text,
|
|
"entity_id" bigint,
|
|
"entity_uuid" uuid,
|
|
"matrix_room_id" text,
|
|
"matrix_alias" text,
|
|
"parent_space_room_id" text,
|
|
"archived" boolean DEFAULT false NOT NULL,
|
|
"created_at" timestamp with time zone DEFAULT now() NOT NULL,
|
|
"updated_at" timestamp with time zone,
|
|
"created_by" uuid,
|
|
"updated_by" uuid
|
|
);
|
|
|
|
ALTER TABLE "communication_rooms"
|
|
ADD CONSTRAINT "communication_rooms_tenant_id_tenants_id_fk"
|
|
FOREIGN KEY ("tenant_id") REFERENCES "public"."tenants"("id")
|
|
ON DELETE cascade ON UPDATE no action;
|
|
|
|
ALTER TABLE "communication_rooms"
|
|
ADD CONSTRAINT "communication_rooms_created_by_auth_users_id_fk"
|
|
FOREIGN KEY ("created_by") REFERENCES "public"."auth_users"("id")
|
|
ON DELETE no action ON UPDATE no action;
|
|
|
|
ALTER TABLE "communication_rooms"
|
|
ADD CONSTRAINT "communication_rooms_updated_by_auth_users_id_fk"
|
|
FOREIGN KEY ("updated_by") REFERENCES "public"."auth_users"("id")
|
|
ON DELETE no action ON UPDATE no action;
|
|
|
|
CREATE UNIQUE INDEX "communication_rooms_tenant_key_idx"
|
|
ON "communication_rooms" USING btree ("tenant_id", "key");
|
|
|
|
CREATE INDEX "communication_rooms_tenant_idx"
|
|
ON "communication_rooms" USING btree ("tenant_id");
|
|
|
|
CREATE INDEX "communication_rooms_entity_idx"
|
|
ON "communication_rooms" USING btree ("tenant_id", "entity_type", "entity_id", "entity_uuid");
|