| 1 | CREATE TYPE "public"."issue_event_type" AS ENUM('opened', 'closed', 'reopened', 'renamed', 'edited', 'labeled', 'unlabeled', 'assigned', 'unassigned');--> statement-breakpoint |
| 2 | CREATE TYPE "public"."issue_state |
| 3 | CREATE TABLE "issue" ( |
| 4 | "id" text PRIMARY KEY |
| 5 | "repositoryId" text NOT NULL |
| 6 | "number" integer NOT NULL |
| 7 | "title" text NOT NULL |
| 8 | "body" text, |
| 9 | "state" "issue_state" DEFAULT |
| 10 | "authorId" text NOT NULL |
| 11 | "closedById" text, |
| 12 | "commentCount" integer DEFAULT |
| 13 | "closedAt" timestamp, |
| 14 | "createdAt" timestamp DEFAULT |
| 15 | "updatedAt" timestamp DEFAULT |
| 16 | CONSTRAINT "issue_id_unique" UNIQUE |
| 17 | ); |
| 18 | --> statement-breakpoint |
| 19 | CREATE TABLE "issue_assignee" ( |
| 20 | "issueId" text NOT NULL |
| 21 | "userId" text NOT NULL |
| 22 | CONSTRAINT "issue_assignee_issueId_userId_pk" PRIMARY KEY |
| 23 | ); |
| 24 | --> statement-breakpoint |
| 25 | CREATE TABLE "issue_comment" ( |
| 26 | "id" text PRIMARY KEY |
| 27 | "issueId" text NOT NULL |
| 28 | "authorId" text NOT NULL |
| 29 | "body" text NOT NULL |
| 30 | "createdAt" timestamp DEFAULT |
| 31 | "updatedAt" timestamp DEFAULT |
| 32 | CONSTRAINT "issue_comment_id_unique" UNIQUE |
| 33 | ); |
| 34 | --> statement-breakpoint |
| 35 | CREATE TABLE "issue_event" ( |
| 36 | "id" text PRIMARY KEY |
| 37 | "issueId" text NOT NULL |
| 38 | "actorId" text, |
| 39 | "type" "issue_event_type" NOT NULL |
| 40 | "labelName" text, |
| 41 | "assigneeUsername" text, |
| 42 | "oldTitle" text, |
| 43 | "newTitle" text, |
| 44 | "createdAt" timestamp DEFAULT |
| 45 | CONSTRAINT "issue_event_id_unique" UNIQUE |
| 46 | ); |
| 47 | --> statement-breakpoint |
| 48 | CREATE TABLE "issue_label" ( |
| 49 | "issueId" text NOT NULL |
| 50 | "labelId" text NOT NULL |
| 51 | CONSTRAINT "issue_label_issueId_labelId_pk" PRIMARY KEY |
| 52 | ); |
| 53 | --> statement-breakpoint |
| 54 | CREATE TABLE "label" ( |
| 55 | "id" text PRIMARY KEY |
| 56 | "repositoryId" text NOT NULL |
| 57 | "name" text NOT NULL |
| 58 | "description" text, |
| 59 | "color" text DEFAULT |
| 60 | "createdAt" timestamp DEFAULT |
| 61 | "updatedAt" timestamp DEFAULT |
| 62 | CONSTRAINT "label_id_unique" UNIQUE |
| 63 | ); |
| 64 | --> statement-breakpoint |
| 65 | ALTER TABLE "issue" ADD |
| 66 | ALTER TABLE "issue" ADD |
| 67 | ALTER TABLE "issue" ADD |
| 68 | ALTER TABLE "issue_assignee" ADD |
| 69 | ALTER TABLE "issue_assignee" ADD |
| 70 | ALTER TABLE "issue_comment" ADD |
| 71 | ALTER TABLE "issue_comment" ADD |
| 72 | ALTER TABLE "issue_event" ADD |
| 73 | ALTER TABLE "issue_event" ADD |
| 74 | ALTER TABLE "issue_label" ADD |
| 75 | ALTER TABLE "issue_label" ADD |
| 76 | ALTER TABLE "label" ADD |
| 77 | CREATE UNIQUE INDEX "issue_repo_number_idx" ON |
| 78 | CREATE INDEX "issue_repo_state_idx" ON |
| 79 | CREATE INDEX "issue_repo_updated_idx" ON |
| 80 | CREATE INDEX "issue_comment_issue_idx" ON |
| 81 | CREATE INDEX "issue_event_issue_idx" ON |
| 82 | CREATE UNIQUE INDEX "label_repo_name_idx" ON |
| 83 | CREATE INDEX "label_repo_idx" ON |