mad-lawsuit/backend/prisma/migrations/20250624211038_init/migration.sql

80 lines
2.5 KiB
SQL

-- CreateTable
CREATE TABLE "docket_entries" (
"id" SERIAL NOT NULL,
"date" DATE NOT NULL,
"document_type" VARCHAR(100) NOT NULL,
"summary" TEXT NOT NULL,
"court_notes" TEXT,
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updated_at" TIMESTAMP(3) NOT NULL,
CONSTRAINT "docket_entries_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "documents" (
"id" SERIAL NOT NULL,
"docket_entry_id" INTEGER NOT NULL,
"original_filename" VARCHAR(255) NOT NULL,
"stored_filename" VARCHAR(255) NOT NULL,
"file_path" VARCHAR(500) NOT NULL,
"title" VARCHAR(255) NOT NULL,
"summary" TEXT,
"notes" TEXT,
"is_primary" BOOLEAN NOT NULL DEFAULT false,
"file_size" INTEGER NOT NULL,
"display_order" INTEGER NOT NULL DEFAULT 0,
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updated_at" TIMESTAMP(3) NOT NULL,
CONSTRAINT "documents_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "subscriptions" (
"id" SERIAL NOT NULL,
"email" VARCHAR(255) NOT NULL,
"is_active" BOOLEAN NOT NULL DEFAULT true,
"unsubscribe_token" VARCHAR(255) NOT NULL,
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT "subscriptions_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "admin_users" (
"id" SERIAL NOT NULL,
"username" VARCHAR(50) NOT NULL,
"password_hash" VARCHAR(255) NOT NULL,
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"last_login" TIMESTAMP(3),
CONSTRAINT "admin_users_pkey" PRIMARY KEY ("id")
);
-- CreateIndex
CREATE INDEX "idx_docket_entries_date" ON "docket_entries"("date" DESC);
-- CreateIndex
CREATE UNIQUE INDEX "documents_stored_filename_key" ON "documents"("stored_filename");
-- CreateIndex
CREATE INDEX "idx_documents_docket_entry" ON "documents"("docket_entry_id");
-- CreateIndex
CREATE INDEX "idx_documents_display_order" ON "documents"("docket_entry_id", "display_order");
-- CreateIndex
CREATE UNIQUE INDEX "subscriptions_email_key" ON "subscriptions"("email");
-- CreateIndex
CREATE UNIQUE INDEX "subscriptions_unsubscribe_token_key" ON "subscriptions"("unsubscribe_token");
-- CreateIndex
CREATE INDEX "idx_subscriptions_active" ON "subscriptions"("is_active");
-- CreateIndex
CREATE UNIQUE INDEX "admin_users_username_key" ON "admin_users"("username");
-- AddForeignKey
ALTER TABLE "documents" ADD CONSTRAINT "documents_docket_entry_id_fkey" FOREIGN KEY ("docket_entry_id") REFERENCES "docket_entries"("id") ON DELETE CASCADE ON UPDATE CASCADE;