b49680c118
Adds a Prisma model for per-student Clean PDF API keys plus a hand-written migration (no local Postgres to run `migrate dev` against). getOrCreatePdfKey/regenerateKey wrap the model with lazy-creation and rotation logic on top of generatePdfKey().
15 lines
636 B
SQL
15 lines
636 B
SQL
-- Чистый PDF — персональный API-ключ студента (Zotero/curl)
|
|
CREATE TABLE "PdfApiKey" (
|
|
"id" TEXT NOT NULL,
|
|
"userId" TEXT NOT NULL,
|
|
"key" TEXT NOT NULL,
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
CONSTRAINT "PdfApiKey_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
CREATE UNIQUE INDEX "PdfApiKey_userId_key" ON "PdfApiKey"("userId");
|
|
CREATE UNIQUE INDEX "PdfApiKey_key_key" ON "PdfApiKey"("key");
|
|
|
|
ALTER TABLE "PdfApiKey" ADD CONSTRAINT "PdfApiKey_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|