77 lines
3.0 KiB
SQL
77 lines
3.0 KiB
SQL
CREATE TABLE "account" (
|
|
"userId" text NOT NULL,
|
|
"type" text NOT NULL,
|
|
"provider" text NOT NULL,
|
|
"providerAccountId" text NOT NULL,
|
|
"refresh_token" text,
|
|
"access_token" text,
|
|
"expires_at" integer,
|
|
"token_type" text,
|
|
"scope" text,
|
|
"id_token" text,
|
|
"session_state" text,
|
|
CONSTRAINT "account_provider_providerAccountId_pk" PRIMARY KEY("provider","providerAccountId")
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE TABLE "answer" (
|
|
"id" text PRIMARY KEY NOT NULL,
|
|
"submission_id" text NOT NULL,
|
|
"question_id" text NOT NULL,
|
|
"value" text DEFAULT '' NOT NULL
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE TABLE "form" (
|
|
"id" text PRIMARY KEY NOT NULL,
|
|
"title" text NOT NULL,
|
|
"description" text,
|
|
"created_at" timestamp DEFAULT now() NOT NULL
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE TABLE "question" (
|
|
"id" text PRIMARY KEY NOT NULL,
|
|
"form_id" text NOT NULL,
|
|
"type" text DEFAULT 'text' NOT NULL,
|
|
"label" text NOT NULL,
|
|
"image_url" text,
|
|
"display_order" integer DEFAULT 0 NOT NULL,
|
|
"required" boolean DEFAULT false NOT NULL,
|
|
"options" jsonb DEFAULT '[]'::jsonb
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE TABLE "session" (
|
|
"sessionToken" text PRIMARY KEY NOT NULL,
|
|
"userId" text NOT NULL,
|
|
"expires" timestamp NOT NULL
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE TABLE "submission" (
|
|
"id" text PRIMARY KEY NOT NULL,
|
|
"form_id" text NOT NULL,
|
|
"user_discord_id" text,
|
|
"user_name" text,
|
|
"submitted_at" timestamp DEFAULT now() NOT NULL
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE TABLE "user" (
|
|
"id" text PRIMARY KEY NOT NULL,
|
|
"name" text,
|
|
"email" text,
|
|
"emailVerified" timestamp,
|
|
"image" text,
|
|
"discord_id" text,
|
|
CONSTRAINT "user_email_unique" UNIQUE("email")
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE TABLE "verificationToken" (
|
|
"identifier" text NOT NULL,
|
|
"token" text NOT NULL,
|
|
"expires" timestamp NOT NULL,
|
|
CONSTRAINT "verificationToken_identifier_token_pk" PRIMARY KEY("identifier","token")
|
|
);
|
|
--> statement-breakpoint
|
|
ALTER TABLE "account" ADD CONSTRAINT "account_userId_user_id_fk" FOREIGN KEY ("userId") REFERENCES "public"."user"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
|
|
ALTER TABLE "answer" ADD CONSTRAINT "answer_submission_id_submission_id_fk" FOREIGN KEY ("submission_id") REFERENCES "public"."submission"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
|
|
ALTER TABLE "answer" ADD CONSTRAINT "answer_question_id_question_id_fk" FOREIGN KEY ("question_id") REFERENCES "public"."question"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
|
|
ALTER TABLE "question" ADD CONSTRAINT "question_form_id_form_id_fk" FOREIGN KEY ("form_id") REFERENCES "public"."form"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
|
|
ALTER TABLE "session" ADD CONSTRAINT "session_userId_user_id_fk" FOREIGN KEY ("userId") REFERENCES "public"."user"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
|
|
ALTER TABLE "submission" ADD CONSTRAINT "submission_form_id_form_id_fk" FOREIGN KEY ("form_id") REFERENCES "public"."form"("id") ON DELETE cascade ON UPDATE no action; |