* feat: setup checklist schema * feat: scaffold checklist router * feat: add create new checklist modal * feat: create new checklist item * feat: toggle checklist item completed state * feat: update checklist name * feat: delete checklist * feat: show checklists progress on cards * feat: tweak light mode styling * feat: focus item form on creation of new checklist * feat: tweak new checklist item form styling * feat: add checklist activity * feat: show checklist progress on public board page * feat: display checklist items on public card modal * chore: add translations
85 lines
3.3 KiB
SQL
85 lines
3.3 KiB
SQL
CREATE TABLE IF NOT EXISTS "card_checklist_item" (
|
|
"id" bigserial PRIMARY KEY NOT NULL,
|
|
"publicId" varchar(12) NOT NULL,
|
|
"title" varchar(500) NOT NULL,
|
|
"completed" boolean DEFAULT false NOT NULL,
|
|
"index" integer NOT NULL,
|
|
"checklistId" bigint NOT NULL,
|
|
"createdBy" uuid,
|
|
"createdAt" timestamp DEFAULT now() NOT NULL,
|
|
"updatedAt" timestamp,
|
|
"deletedAt" timestamp,
|
|
"deletedBy" uuid,
|
|
CONSTRAINT "card_checklist_item_publicId_unique" UNIQUE("publicId")
|
|
);
|
|
--> statement-breakpoint
|
|
ALTER TABLE "card_checklist_item" ENABLE ROW LEVEL SECURITY;--> statement-breakpoint
|
|
CREATE TABLE IF NOT EXISTS "card_checklist" (
|
|
"id" bigserial PRIMARY KEY NOT NULL,
|
|
"publicId" varchar(12) NOT NULL,
|
|
"name" varchar(255) NOT NULL,
|
|
"index" integer NOT NULL,
|
|
"cardId" bigint NOT NULL,
|
|
"createdBy" uuid,
|
|
"createdAt" timestamp DEFAULT now() NOT NULL,
|
|
"updatedAt" timestamp,
|
|
"deletedAt" timestamp,
|
|
"deletedBy" uuid,
|
|
CONSTRAINT "card_checklist_publicId_unique" UNIQUE("publicId")
|
|
);
|
|
--> statement-breakpoint
|
|
ALTER TABLE "card_checklist" ENABLE ROW LEVEL SECURITY;--> statement-breakpoint
|
|
CREATE TABLE IF NOT EXISTS "integration" (
|
|
"provider" varchar(255) NOT NULL,
|
|
"userId" uuid NOT NULL,
|
|
"accessToken" varchar(255) NOT NULL,
|
|
"refreshToken" varchar(255),
|
|
"expiresAt" timestamp NOT NULL,
|
|
"createdAt" timestamp NOT NULL,
|
|
"updatedAt" timestamp,
|
|
CONSTRAINT "integration_pkey" PRIMARY KEY("userId","provider")
|
|
);
|
|
--> statement-breakpoint
|
|
ALTER TABLE "integration" ENABLE ROW LEVEL SECURITY;--> statement-breakpoint
|
|
DO $$ BEGIN
|
|
ALTER TABLE "card_checklist_item" ADD CONSTRAINT "card_checklist_item_checklistId_card_checklist_id_fk" FOREIGN KEY ("checklistId") REFERENCES "public"."card_checklist"("id") ON DELETE cascade ON UPDATE no action;
|
|
EXCEPTION
|
|
WHEN duplicate_object THEN null;
|
|
END $$;
|
|
--> statement-breakpoint
|
|
DO $$ BEGIN
|
|
ALTER TABLE "card_checklist_item" ADD CONSTRAINT "card_checklist_item_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 "card_checklist_item" ADD CONSTRAINT "card_checklist_item_deletedBy_user_id_fk" FOREIGN KEY ("deletedBy") 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 "card_checklist" ADD CONSTRAINT "card_checklist_cardId_card_id_fk" FOREIGN KEY ("cardId") REFERENCES "public"."card"("id") ON DELETE cascade ON UPDATE no action;
|
|
EXCEPTION
|
|
WHEN duplicate_object THEN null;
|
|
END $$;
|
|
--> statement-breakpoint
|
|
DO $$ BEGIN
|
|
ALTER TABLE "card_checklist" ADD CONSTRAINT "card_checklist_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 "card_checklist" ADD CONSTRAINT "card_checklist_deletedBy_user_id_fk" FOREIGN KEY ("deletedBy") 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 "integration" ADD CONSTRAINT "integration_userId_user_id_fk" FOREIGN KEY ("userId") REFERENCES "public"."user"("id") ON DELETE cascade ON UPDATE no action;
|
|
EXCEPTION
|
|
WHEN duplicate_object THEN null;
|
|
END $$;
|