diff --git a/prisma/migrations/20250323120019_fields_created_at/migration.sql b/prisma/migrations/20250323120019_fields_created_at/migration.sql new file mode 100644 index 0000000..4d6d62e --- /dev/null +++ b/prisma/migrations/20250323120019_fields_created_at/migration.sql @@ -0,0 +1,20 @@ +-- RedefineTables +PRAGMA defer_foreign_keys=ON; +PRAGMA foreign_keys=OFF; +CREATE TABLE "new_fields" ( + "code" TEXT NOT NULL PRIMARY KEY, + "name" TEXT NOT NULL, + "type" TEXT NOT NULL DEFAULT 'string', + "llm_prompt" TEXT, + "options" JSONB, + "created_at" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, + "is_visible_in_list" BOOLEAN NOT NULL DEFAULT false, + "is_visible_in_analysis" BOOLEAN NOT NULL DEFAULT false, + "is_required" BOOLEAN NOT NULL DEFAULT false, + "is_extra" BOOLEAN NOT NULL DEFAULT true +); +INSERT INTO "new_fields" ("code", "is_extra", "is_required", "is_visible_in_analysis", "is_visible_in_list", "llm_prompt", "name", "options", "type") SELECT "code", "is_extra", "is_required", "is_visible_in_analysis", "is_visible_in_list", "llm_prompt", "name", "options", "type" FROM "fields"; +DROP TABLE "fields"; +ALTER TABLE "new_fields" RENAME TO "fields"; +PRAGMA foreign_keys=ON; +PRAGMA defer_foreign_keys=OFF; diff --git a/prisma/schema.prisma b/prisma/schema.prisma index 9d85f16..a83680b 100644 --- a/prisma/schema.prisma +++ b/prisma/schema.prisma @@ -42,15 +42,16 @@ model Project { } model Field { - code String @id + code String @id name String - type String @default("string") + type String @default("string") llm_prompt String? options Json? - isVisibleInList Boolean @default(false) @map("is_visible_in_list") - isVisibleInAnalysis Boolean @default(false) @map("is_visible_in_analysis") - isRequired Boolean @default(false) @map("is_required") - isExtra Boolean @default(true) @map("is_extra") + createdAt DateTime @default(now()) @map("created_at") + isVisibleInList Boolean @default(false) @map("is_visible_in_list") + isVisibleInAnalysis Boolean @default(false) @map("is_visible_in_analysis") + isRequired Boolean @default(false) @map("is_required") + isExtra Boolean @default(true) @map("is_extra") @@map("fields") } diff --git a/prisma/seed.js b/prisma/seed.js index 877fc9a..3544049 100644 --- a/prisma/seed.js +++ b/prisma/seed.js @@ -332,10 +332,10 @@ const fields = [ isExtra: false, }, { - code: "categoryCode", - name: "Category", + code: "issuedAt", + name: "Issued At", type: "string", - llm_prompt: "category code, one of: {categories.code}", + llm_prompt: "issued at date (YYYY-MM-DD format)", isVisibleInList: true, isVisibleInAnalysis: true, isRequired: false, @@ -352,10 +352,20 @@ const fields = [ isExtra: false, }, { - code: "issuedAt", - name: "Issued At", + code: "categoryCode", + name: "Category", type: "string", - llm_prompt: "issued at date (YYYY-MM-DD format)", + llm_prompt: "category code, one of: {categories.code}", + isVisibleInList: true, + isVisibleInAnalysis: true, + isRequired: false, + isExtra: false, + }, + { + code: "files", + name: "Files", + type: "string", + llm_prompt: "", isVisibleInList: true, isVisibleInAnalysis: true, isRequired: false, @@ -483,6 +493,13 @@ async function main() { } // Seed fields + await prisma.field.deleteMany({ + where: { + code: { + in: fields.map((field) => field.code), + }, + }, + }) for (const field of fields) { await prisma.field.upsert({ where: { code: field.code },