Files
convite-rael/drizzle/0005_pdf_generation.sql

23 lines
1.6 KiB
SQL

CREATE TYPE "public"."pdf_job_status" AS ENUM('running', 'finished', 'interrupted');--> statement-breakpoint
CREATE TYPE "public"."pdf_status" AS ENUM('not_generated', 'generating', 'generated', 'error');--> statement-breakpoint
CREATE TABLE "pdf_jobs" (
"id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
"event_id" uuid NOT NULL,
"status" "pdf_job_status" DEFAULT 'running' NOT NULL,
"invitation_ids" jsonb NOT NULL,
"total" integer NOT NULL,
"processed" integer DEFAULT 0 NOT NULL,
"failed" integer DEFAULT 0 NOT NULL,
"created_at" timestamp with time zone DEFAULT now() NOT NULL,
"finished_at" timestamp with time zone
);
--> statement-breakpoint
ALTER TABLE "events" ADD COLUMN "pdf_template_version" integer DEFAULT 0 NOT NULL;--> statement-breakpoint
ALTER TABLE "events" ADD COLUMN "pdf_template_name" text;--> statement-breakpoint
ALTER TABLE "events" ADD COLUMN "pdf_template_updated_at" timestamp with time zone;--> statement-breakpoint
ALTER TABLE "invitations" ADD COLUMN "pdf_status" "pdf_status" DEFAULT 'not_generated' NOT NULL;--> statement-breakpoint
ALTER TABLE "invitations" ADD COLUMN "pdf_template_version" integer;--> statement-breakpoint
ALTER TABLE "invitations" ADD COLUMN "pdf_generated_at" timestamp with time zone;--> statement-breakpoint
ALTER TABLE "invitations" ADD COLUMN "pdf_error" text;--> statement-breakpoint
ALTER TABLE "pdf_jobs" ADD CONSTRAINT "pdf_jobs_event_id_events_id_fk" FOREIGN KEY ("event_id") REFERENCES "public"."events"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
CREATE UNIQUE INDEX "pdf_jobs_one_running_per_event" ON "pdf_jobs" USING btree ("event_id") WHERE "pdf_jobs"."status" = 'running';