CREATE TABLE "adjudications" (
	"paragraph_id" text PRIMARY KEY NOT NULL,
	"final_category" text NOT NULL,
	"final_specificity" integer NOT NULL,
	"method" text NOT NULL,
	"adjudicator_id" text,
	"notes" text,
	"resolved_at" timestamp DEFAULT now() NOT NULL
);
--> statement-breakpoint
CREATE TABLE "annotators" (
	"id" text PRIMARY KEY NOT NULL,
	"display_name" text NOT NULL,
	"password" text NOT NULL,
	"onboarded_at" timestamp
);
--> statement-breakpoint
CREATE TABLE "assignments" (
	"paragraph_id" text NOT NULL,
	"annotator_id" text NOT NULL,
	"assigned_at" timestamp DEFAULT now() NOT NULL,
	"is_warmup" boolean DEFAULT false NOT NULL,
	CONSTRAINT "assignments_paragraph_id_annotator_id_unique" UNIQUE("paragraph_id","annotator_id")
);
--> statement-breakpoint
CREATE TABLE "human_labels" (
	"id" integer PRIMARY KEY GENERATED ALWAYS AS IDENTITY (sequence name "human_labels_id_seq" INCREMENT BY 1 MINVALUE 1 MAXVALUE 2147483647 START WITH 1 CACHE 1),
	"paragraph_id" text NOT NULL,
	"annotator_id" text NOT NULL,
	"content_category" text NOT NULL,
	"specificity_level" integer NOT NULL,
	"notes" text,
	"labeled_at" timestamp DEFAULT now() NOT NULL,
	"session_id" text NOT NULL,
	"duration_ms" integer,
	"active_ms" integer,
	CONSTRAINT "human_labels_paragraph_id_annotator_id_unique" UNIQUE("paragraph_id","annotator_id")
);
--> statement-breakpoint
CREATE TABLE "paragraphs" (
	"id" text PRIMARY KEY NOT NULL,
	"text" text NOT NULL,
	"word_count" integer NOT NULL,
	"paragraph_index" integer NOT NULL,
	"company_name" text NOT NULL,
	"cik" text NOT NULL,
	"ticker" text,
	"filing_type" text NOT NULL,
	"filing_date" text NOT NULL,
	"fiscal_year" integer NOT NULL,
	"accession_number" text NOT NULL,
	"sec_item" text NOT NULL,
	"stage1_category" text,
	"stage1_specificity" integer,
	"stage1_method" text,
	"stage1_confidence" real
);
--> statement-breakpoint
CREATE TABLE "quiz_sessions" (
	"id" text PRIMARY KEY NOT NULL,
	"annotator_id" text NOT NULL,
	"started_at" timestamp DEFAULT now() NOT NULL,
	"completed_at" timestamp,
	"passed" boolean DEFAULT false NOT NULL,
	"score" integer DEFAULT 0 NOT NULL,
	"total_questions" integer NOT NULL,
	"answers" text DEFAULT '[]' NOT NULL
);
--> statement-breakpoint
ALTER TABLE "adjudications" ADD CONSTRAINT "adjudications_paragraph_id_paragraphs_id_fk" FOREIGN KEY ("paragraph_id") REFERENCES "public"."paragraphs"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "assignments" ADD CONSTRAINT "assignments_paragraph_id_paragraphs_id_fk" FOREIGN KEY ("paragraph_id") REFERENCES "public"."paragraphs"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "assignments" ADD CONSTRAINT "assignments_annotator_id_annotators_id_fk" FOREIGN KEY ("annotator_id") REFERENCES "public"."annotators"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "human_labels" ADD CONSTRAINT "human_labels_paragraph_id_paragraphs_id_fk" FOREIGN KEY ("paragraph_id") REFERENCES "public"."paragraphs"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "human_labels" ADD CONSTRAINT "human_labels_annotator_id_annotators_id_fk" FOREIGN KEY ("annotator_id") REFERENCES "public"."annotators"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "quiz_sessions" ADD CONSTRAINT "quiz_sessions_annotator_id_annotators_id_fk" FOREIGN KEY ("annotator_id") REFERENCES "public"."annotators"("id") ON DELETE no action ON UPDATE no action;