kaneo (minimalist kanban) fork to experiment adding a tangled integration
github.com/usekaneo/kaneo
1CREATE TABLE "user_notification_preference" (
2 "id" text PRIMARY KEY NOT NULL,
3 "user_id" text NOT NULL,
4 "email_enabled" boolean DEFAULT false NOT NULL,
5 "ntfy_enabled" boolean DEFAULT false NOT NULL,
6 "ntfy_server_url" text,
7 "ntfy_topic" text,
8 "ntfy_token" text,
9 "gotify_enabled" boolean DEFAULT false NOT NULL,
10 "gotify_server_url" text,
11 "gotify_token" text,
12 "webhook_enabled" boolean DEFAULT false NOT NULL,
13 "webhook_url" text,
14 "webhook_secret" text,
15 "created_at" timestamp DEFAULT now() NOT NULL,
16 "updated_at" timestamp DEFAULT now() NOT NULL,
17 CONSTRAINT "user_notification_preference_user_id_unique" UNIQUE("user_id")
18);
19--> statement-breakpoint
20CREATE TABLE "user_notification_workspace_project" (
21 "id" text PRIMARY KEY NOT NULL,
22 "workspace_id" text NOT NULL,
23 "workspace_rule_id" text NOT NULL,
24 "project_id" text NOT NULL,
25 "created_at" timestamp DEFAULT now() NOT NULL,
26 "updated_at" timestamp DEFAULT now() NOT NULL,
27 CONSTRAINT "user_notification_workspace_project_rule_project_unique" UNIQUE("workspace_rule_id","project_id")
28);
29--> statement-breakpoint
30CREATE TABLE "user_notification_workspace_rule" (
31 "id" text PRIMARY KEY NOT NULL,
32 "user_id" text NOT NULL,
33 "workspace_id" text NOT NULL,
34 "is_active" boolean DEFAULT true NOT NULL,
35 "email_enabled" boolean DEFAULT false NOT NULL,
36 "ntfy_enabled" boolean DEFAULT false NOT NULL,
37 "gotify_enabled" boolean DEFAULT false NOT NULL,
38 "webhook_enabled" boolean DEFAULT false NOT NULL,
39 "project_mode" text DEFAULT 'all' NOT NULL,
40 "created_at" timestamp DEFAULT now() NOT NULL,
41 "updated_at" timestamp DEFAULT now() NOT NULL,
42 CONSTRAINT "user_notification_workspace_rule_user_workspace_unique" UNIQUE("user_id","workspace_id"),
43 CONSTRAINT "user_notification_workspace_rule_workspace_id_id_unique" UNIQUE("workspace_id","id")
44);
45--> statement-breakpoint
46ALTER TABLE "user_notification_preference" ADD CONSTRAINT "user_notification_preference_user_id_user_id_fk" FOREIGN KEY ("user_id") REFERENCES "public"."user"("id") ON DELETE cascade ON UPDATE cascade;--> statement-breakpoint
47ALTER TABLE "user_notification_workspace_project" ADD CONSTRAINT "user_notification_workspace_project_workspace_id_workspace_id_fk" FOREIGN KEY ("workspace_id") REFERENCES "public"."workspace"("id") ON DELETE cascade ON UPDATE cascade;--> statement-breakpoint
48ALTER TABLE "user_notification_workspace_project" ADD CONSTRAINT "user_notification_workspace_project_workspace_id_workspace_rule_id_user_notification_workspace_rule_workspace_id_id_fk" FOREIGN KEY ("workspace_id","workspace_rule_id") REFERENCES "public"."user_notification_workspace_rule"("workspace_id","id") ON DELETE cascade ON UPDATE cascade;--> statement-breakpoint
49ALTER TABLE "project" ADD CONSTRAINT "project_workspace_id_id_unique" UNIQUE("workspace_id","id");--> statement-breakpoint
50ALTER TABLE "user_notification_workspace_project" ADD CONSTRAINT "user_notification_workspace_project_workspace_id_project_id_project_workspace_id_id_fk" FOREIGN KEY ("workspace_id","project_id") REFERENCES "public"."project"("workspace_id","id") ON DELETE cascade ON UPDATE cascade;--> statement-breakpoint
51ALTER TABLE "user_notification_workspace_rule" ADD CONSTRAINT "user_notification_workspace_rule_user_id_user_id_fk" FOREIGN KEY ("user_id") REFERENCES "public"."user"("id") ON DELETE cascade ON UPDATE cascade;--> statement-breakpoint
52ALTER TABLE "user_notification_workspace_rule" ADD CONSTRAINT "user_notification_workspace_rule_workspace_id_workspace_id_fk" FOREIGN KEY ("workspace_id") REFERENCES "public"."workspace"("id") ON DELETE cascade ON UPDATE cascade;--> statement-breakpoint
53CREATE INDEX "user_notification_workspace_project_ruleId_idx" ON "user_notification_workspace_project" USING btree ("workspace_rule_id");--> statement-breakpoint
54CREATE INDEX "user_notification_workspace_project_projectId_idx" ON "user_notification_workspace_project" USING btree ("project_id");--> statement-breakpoint
55CREATE INDEX "user_notification_workspace_rule_userId_idx" ON "user_notification_workspace_rule" USING btree ("user_id");--> statement-breakpoint
56CREATE INDEX "user_notification_workspace_rule_workspaceId_idx" ON "user_notification_workspace_rule" USING btree ("workspace_id");--> statement-breakpoint