From efe8868c1deb1ea335a8749be853d9017902d183 Mon Sep 17 00:00:00 2001 From: nzambello Date: Mon, 7 Aug 2023 11:00:47 +0200 Subject: [PATCH] chore: add db schema and migrations --- .../migration.sql | 9 +- .../migration.sql | 2 + prisma/schema.prisma | 15 +- prisma/seed.ts | 18 +- yarn.lock | 235 ++++-------------- 5 files changed, 80 insertions(+), 199 deletions(-) rename prisma/migrations/{20220713162558_init => 20230807085649_init}/migration.sql (76%) create mode 100644 prisma/migrations/20230807085850_add_openai_key/migration.sql diff --git a/prisma/migrations/20220713162558_init/migration.sql b/prisma/migrations/20230807085649_init/migration.sql similarity index 76% rename from prisma/migrations/20220713162558_init/migration.sql rename to prisma/migrations/20230807085649_init/migration.sql index 121ffe2..c0e12d8 100644 --- a/prisma/migrations/20220713162558_init/migration.sql +++ b/prisma/migrations/20230807085649_init/migration.sql @@ -14,14 +14,15 @@ CREATE TABLE "Password" ( ); -- CreateTable -CREATE TABLE "Note" ( +CREATE TABLE "Translation" ( "id" TEXT NOT NULL PRIMARY KEY, - "title" TEXT NOT NULL, - "body" TEXT NOT NULL, + "lang" TEXT NOT NULL, + "text" TEXT NOT NULL, + "result" TEXT NOT NULL, "createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, "updatedAt" DATETIME NOT NULL, "userId" TEXT NOT NULL, - CONSTRAINT "Note_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User" ("id") ON DELETE CASCADE ON UPDATE CASCADE + CONSTRAINT "Translation_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User" ("id") ON DELETE CASCADE ON UPDATE CASCADE ); -- CreateIndex diff --git a/prisma/migrations/20230807085850_add_openai_key/migration.sql b/prisma/migrations/20230807085850_add_openai_key/migration.sql new file mode 100644 index 0000000..83e557d --- /dev/null +++ b/prisma/migrations/20230807085850_add_openai_key/migration.sql @@ -0,0 +1,2 @@ +-- AlterTable +ALTER TABLE "User" ADD COLUMN "openAIKey" TEXT; diff --git a/prisma/schema.prisma b/prisma/schema.prisma index 141c8dc..a2cd171 100644 --- a/prisma/schema.prisma +++ b/prisma/schema.prisma @@ -14,8 +14,10 @@ model User { createdAt DateTime @default(now()) updatedAt DateTime @updatedAt - password Password? - notes Note[] + password Password? + translations Translation[] + + openAIKey String? } model Password { @@ -25,10 +27,11 @@ model Password { userId String @unique } -model Note { - id String @id @default(cuid()) - title String - body String +model Translation { + id String @id @default(cuid()) + lang String + text String + result String createdAt DateTime @default(now()) updatedAt DateTime @updatedAt diff --git a/prisma/seed.ts b/prisma/seed.ts index 5de5397..dfbb281 100644 --- a/prisma/seed.ts +++ b/prisma/seed.ts @@ -4,14 +4,14 @@ import bcrypt from "bcryptjs"; const prisma = new PrismaClient(); async function seed() { - const email = "rachel@remix.run"; + const email = "nicola@nzambello.dev"; // cleanup the existing database await prisma.user.delete({ where: { email } }).catch(() => { // no worries if it doesn't exist yet }); - const hashedPassword = await bcrypt.hash("racheliscool", 10); + const hashedPassword = await bcrypt.hash("nzambello.dev", 10); const user = await prisma.user.create({ data: { @@ -24,18 +24,20 @@ async function seed() { }, }); - await prisma.note.create({ + await prisma.translation.create({ data: { - title: "My first note", - body: "Hello, world!", + lang: "italian", + text: "Hello, world!", + result: "Ciao, mondo!", userId: user.id, }, }); - await prisma.note.create({ + await prisma.translation.create({ data: { - title: "My second note", - body: "Hello, world!", + lang: "spanish", + text: "Hello, world!", + result: "¡Hola Mundo!", userId: user.id, }, }); diff --git a/yarn.lock b/yarn.lock index 18aaeb9..91d697e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2975,7 +2975,7 @@ __metadata: languageName: node linkType: hard -"@types/unist@npm:^2, @types/unist@npm:^2.0.0, @types/unist@npm:^2.0.2": +"@types/unist@npm:^2, @types/unist@npm:^2.0.0": version: 2.0.7 resolution: "@types/unist@npm:2.0.7" checksum: b97a219554e83431f19a93ff113306bf0512909292815e8f32964e47d041c505af1aaa2a381c23e137c4c0b962fad58d4ce9c5c3256642921a466be43c1fc715 @@ -4258,13 +4258,6 @@ __metadata: languageName: node linkType: hard -"character-entities-legacy@npm:^1.0.0": - version: 1.1.4 - resolution: "character-entities-legacy@npm:1.1.4" - checksum: fe03a82c154414da3a0c8ab3188e4237ec68006cbcd681cf23c7cfb9502a0e76cd30ab69a2e50857ca10d984d57de3b307680fff5328ccd427f400e559c3a811 - languageName: node - linkType: hard - "character-entities-legacy@npm:^3.0.0": version: 3.0.0 resolution: "character-entities-legacy@npm:3.0.0" @@ -4272,13 +4265,6 @@ __metadata: languageName: node linkType: hard -"character-entities@npm:^1.0.0": - version: 1.2.4 - resolution: "character-entities@npm:1.2.4" - checksum: e1545716571ead57beac008433c1ff69517cd8ca5b336889321c5b8ff4a99c29b65589a701e9c086cda8a5e346a67295e2684f6c7ea96819fe85cbf49bf8686d - languageName: node - linkType: hard - "character-entities@npm:^2.0.0": version: 2.0.2 resolution: "character-entities@npm:2.0.2" @@ -4286,13 +4272,6 @@ __metadata: languageName: node linkType: hard -"character-reference-invalid@npm:^1.0.0": - version: 1.1.4 - resolution: "character-reference-invalid@npm:1.1.4" - checksum: 20274574c70e05e2f81135f3b93285536bc8ff70f37f0809b0d17791a832838f1e49938382899ed4cb444e5bbd4314ca1415231344ba29f4222ce2ccf24fea0b - languageName: node - linkType: hard - "character-reference-invalid@npm:^2.0.0": version: 2.0.1 resolution: "character-reference-invalid@npm:2.0.1" @@ -5737,17 +5716,6 @@ __metadata: languageName: node linkType: hard -"eslint-plugin-markdown@npm:^3.0.0": - version: 3.0.1 - resolution: "eslint-plugin-markdown@npm:3.0.1" - dependencies: - mdast-util-from-markdown: ^0.8.5 - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - checksum: 91233d35777517a290377233eecbdbbe17d583f40b11b9adf371d051a98012ad6b540967aae59c2786fb8b66aa7c1abb27108947034b1f0f3e0df1c8aae9f2e7 - languageName: node - linkType: hard - "eslint-plugin-node@npm:^11.1.0": version: 11.1.0 resolution: "eslint-plugin-node@npm:11.1.0" @@ -5764,15 +5732,6 @@ __metadata: languageName: node linkType: hard -"eslint-plugin-prefer-let@npm:^3.0.1": - version: 3.0.1 - resolution: "eslint-plugin-prefer-let@npm:3.0.1" - dependencies: - requireindex: ~1.2.0 - checksum: c6b2bcd0e192d1875e986364fb3ec8421da2126b216fab418dff89249aeb4eb28fca8cd17f818f5ae9753864733299524b1ef9bb74305ed974a22d5241cdd752 - languageName: node - linkType: hard - "eslint-plugin-react-hooks@npm:^4.6.0": version: 4.6.0 resolution: "eslint-plugin-react-hooks@npm:4.6.0" @@ -7291,60 +7250,6 @@ __metadata: languageName: node linkType: hard -"indie-stack-template@workspace:.": - version: 0.0.0-use.local - resolution: "indie-stack-template@workspace:." - dependencies: - "@faker-js/faker": ^8.0.2 - "@prisma/client": ^4.16.1 - "@remix-run/css-bundle": ^1.19.2 - "@remix-run/dev": ^1.19.2 - "@remix-run/eslint-config": ^1.19.2 - "@remix-run/node": ^1.19.2 - "@remix-run/react": ^1.19.2 - "@remix-run/serve": ^1.19.2 - "@testing-library/cypress": ^9.0.0 - "@testing-library/jest-dom": ^5.16.5 - "@types/bcryptjs": ^2.4.2 - "@types/eslint": ^8.40.2 - "@types/node": ^18.16.18 - "@types/react": ^18.2.14 - "@types/react-dom": ^18.2.6 - "@vitejs/plugin-react": ^4.0.1 - "@vitest/coverage-v8": ^0.32.2 - autoprefixer: ^10.4.14 - bcryptjs: ^2.4.3 - binode: ^1.0.5 - cookie: ^0.5.0 - cross-env: ^7.0.3 - cypress: ^12.16.0 - eslint: ^8.43.0 - eslint-config-prettier: ^8.8.0 - eslint-plugin-cypress: ^2.13.3 - eslint-plugin-markdown: ^3.0.0 - eslint-plugin-prefer-let: ^3.0.1 - happy-dom: ^9.20.3 - isbot: ^3.6.12 - msw: ^1.2.2 - npm-run-all: ^4.1.5 - postcss: ^8.4.24 - prettier: 2.8.8 - prettier-plugin-tailwindcss: ^0.3.0 - prisma: ^4.16.1 - react: ^18.2.0 - react-dom: ^18.2.0 - start-server-and-test: ^2.0.0 - tailwindcss: ^3.3.2 - tiny-invariant: ^1.3.1 - ts-node: ^10.9.1 - tsconfig-paths: ^4.2.0 - typescript: ^5.1.3 - vite: ^4.3.9 - vite-tsconfig-paths: ^3.6.0 - vitest: ^0.32.2 - languageName: unknown - linkType: soft - "infer-owner@npm:^1.0.4": version: 1.0.4 resolution: "infer-owner@npm:1.0.4" @@ -7438,13 +7343,6 @@ __metadata: languageName: node linkType: hard -"is-alphabetical@npm:^1.0.0": - version: 1.0.4 - resolution: "is-alphabetical@npm:1.0.4" - checksum: 6508cce44fd348f06705d377b260974f4ce68c74000e7da4045f0d919e568226dc3ce9685c5a2af272195384df6930f748ce9213fc9f399b5d31b362c66312cb - languageName: node - linkType: hard - "is-alphabetical@npm:^2.0.0": version: 2.0.1 resolution: "is-alphabetical@npm:2.0.1" @@ -7452,16 +7350,6 @@ __metadata: languageName: node linkType: hard -"is-alphanumerical@npm:^1.0.0": - version: 1.0.4 - resolution: "is-alphanumerical@npm:1.0.4" - dependencies: - is-alphabetical: ^1.0.0 - is-decimal: ^1.0.0 - checksum: e2e491acc16fcf5b363f7c726f666a9538dba0a043665740feb45bba1652457a73441e7c5179c6768a638ed396db3437e9905f403644ec7c468fb41f4813d03f - languageName: node - linkType: hard - "is-alphanumerical@npm:^2.0.0": version: 2.0.1 resolution: "is-alphanumerical@npm:2.0.1" @@ -7571,13 +7459,6 @@ __metadata: languageName: node linkType: hard -"is-decimal@npm:^1.0.0": - version: 1.0.4 - resolution: "is-decimal@npm:1.0.4" - checksum: ed483a387517856dc395c68403a10201fddcc1b63dc56513fbe2fe86ab38766120090ecdbfed89223d84ca8b1cd28b0641b93cb6597b6e8f4c097a7c24e3fb96 - languageName: node - linkType: hard - "is-decimal@npm:^2.0.0": version: 2.0.1 resolution: "is-decimal@npm:2.0.1" @@ -7649,13 +7530,6 @@ __metadata: languageName: node linkType: hard -"is-hexadecimal@npm:^1.0.0": - version: 1.0.4 - resolution: "is-hexadecimal@npm:1.0.4" - checksum: a452e047587b6069332d83130f54d30da4faf2f2ebaa2ce6d073c27b5703d030d58ed9e0b729c8e4e5b52c6f1dab26781bb77b7bc6c7805f14f320e328ff8cd5 - languageName: node - linkType: hard - "is-hexadecimal@npm:^2.0.0": version: 2.0.1 resolution: "is-hexadecimal@npm:2.0.1" @@ -8585,19 +8459,6 @@ __metadata: languageName: node linkType: hard -"mdast-util-from-markdown@npm:^0.8.5": - version: 0.8.5 - resolution: "mdast-util-from-markdown@npm:0.8.5" - dependencies: - "@types/mdast": ^3.0.0 - mdast-util-to-string: ^2.0.0 - micromark: ~2.11.0 - parse-entities: ^2.0.0 - unist-util-stringify-position: ^2.0.0 - checksum: 5a9d0d753a42db763761e874c22365d0c7c9934a5a18b5ff76a0643610108a208a041ffdb2f3d3dd1863d3d915225a4020a0aade282af0facfd0df110601eee6 - languageName: node - linkType: hard - "mdast-util-from-markdown@npm:^1.0.0": version: 1.3.1 resolution: "mdast-util-from-markdown@npm:1.3.1" @@ -8725,13 +8586,6 @@ __metadata: languageName: node linkType: hard -"mdast-util-to-string@npm:^2.0.0": - version: 2.0.0 - resolution: "mdast-util-to-string@npm:2.0.0" - checksum: 0b2113ada10e002fbccb014170506dabe2f2ddacaacbe4bc1045c33f986652c5a162732a2c057c5335cdb58419e2ad23e368e5be226855d4d4e280b81c4e9ec2 - languageName: node - linkType: hard - "mdast-util-to-string@npm:^3.0.0, mdast-util-to-string@npm:^3.1.0": version: 3.2.0 resolution: "mdast-util-to-string@npm:3.2.0" @@ -9155,16 +9009,6 @@ __metadata: languageName: node linkType: hard -"micromark@npm:~2.11.0": - version: 2.11.4 - resolution: "micromark@npm:2.11.4" - dependencies: - debug: ^4.0.0 - parse-entities: ^2.0.0 - checksum: f8a5477d394908a5d770227aea71657a76423d420227c67ea0699e659a5f62eb39d504c1f7d69ec525a6af5aaeb6a7bffcdba95614968c03d41d3851edecb0d6 - languageName: node - linkType: hard - "micromatch@npm:^4.0.4, micromatch@npm:^4.0.5": version: 4.0.5 resolution: "micromatch@npm:4.0.5" @@ -9976,20 +9820,6 @@ __metadata: languageName: node linkType: hard -"parse-entities@npm:^2.0.0": - version: 2.0.0 - resolution: "parse-entities@npm:2.0.0" - dependencies: - character-entities: ^1.0.0 - character-entities-legacy: ^1.0.0 - character-reference-invalid: ^1.0.0 - is-alphanumerical: ^1.0.0 - is-decimal: ^1.0.0 - is-hexadecimal: ^1.0.0 - checksum: 7addfd3e7d747521afac33c8121a5f23043c6973809756920d37e806639b4898385d386fcf4b3c8e2ecf1bc28aac5ae97df0b112d5042034efbe80f44081ebce - languageName: node - linkType: hard - "parse-entities@npm:^4.0.0": version: 4.0.1 resolution: "parse-entities@npm:4.0.1" @@ -11012,7 +10842,7 @@ __metadata: languageName: node linkType: hard -"requireindex@npm:^1.2.0, requireindex@npm:~1.2.0": +"requireindex@npm:^1.2.0": version: 1.2.0 resolution: "requireindex@npm:1.2.0" checksum: 50d8b10a1ff1fdf6aea7a1870bc7bd238b0fb1917d8d7ca17fd03afc38a65dcd7a8a4eddd031f89128b5f0065833d5c92c4fef67f2c04e8624057fe626c9cf94 @@ -12230,6 +12060,58 @@ __metadata: languageName: node linkType: hard +"translaite-2ae4@workspace:.": + version: 0.0.0-use.local + resolution: "translaite-2ae4@workspace:." + dependencies: + "@faker-js/faker": ^8.0.2 + "@prisma/client": ^4.16.1 + "@remix-run/css-bundle": ^1.19.2 + "@remix-run/dev": ^1.19.2 + "@remix-run/eslint-config": ^1.19.2 + "@remix-run/node": ^1.19.2 + "@remix-run/react": ^1.19.2 + "@remix-run/serve": ^1.19.2 + "@testing-library/cypress": ^9.0.0 + "@testing-library/jest-dom": ^5.16.5 + "@types/bcryptjs": ^2.4.2 + "@types/eslint": ^8.40.2 + "@types/node": ^18.16.18 + "@types/react": ^18.2.14 + "@types/react-dom": ^18.2.6 + "@vitejs/plugin-react": ^4.0.1 + "@vitest/coverage-v8": ^0.32.2 + autoprefixer: ^10.4.14 + bcryptjs: ^2.4.3 + binode: ^1.0.5 + cookie: ^0.5.0 + cross-env: ^7.0.3 + cypress: ^12.16.0 + eslint: ^8.43.0 + eslint-config-prettier: ^8.8.0 + eslint-plugin-cypress: ^2.13.3 + happy-dom: ^9.20.3 + isbot: ^3.6.12 + msw: ^1.2.2 + npm-run-all: ^4.1.5 + postcss: ^8.4.24 + prettier: 2.8.8 + prettier-plugin-tailwindcss: ^0.3.0 + prisma: ^4.16.1 + react: ^18.2.0 + react-dom: ^18.2.0 + start-server-and-test: ^2.0.0 + tailwindcss: ^3.3.2 + tiny-invariant: ^1.3.1 + ts-node: ^10.9.1 + tsconfig-paths: ^4.2.0 + typescript: ^5.1.3 + vite: ^4.3.9 + vite-tsconfig-paths: ^3.6.0 + vitest: ^0.32.2 + languageName: unknown + linkType: soft + "trough@npm:^2.0.0": version: 2.1.0 resolution: "trough@npm:2.1.0" @@ -12614,15 +12496,6 @@ __metadata: languageName: node linkType: hard -"unist-util-stringify-position@npm:^2.0.0": - version: 2.0.3 - resolution: "unist-util-stringify-position@npm:2.0.3" - dependencies: - "@types/unist": ^2.0.2 - checksum: f755cadc959f9074fe999578a1a242761296705a7fe87f333a37c00044de74ab4b184b3812989a57d4cd12211f0b14ad397b327c3a594c7af84361b1c25a7f09 - languageName: node - linkType: hard - "unist-util-stringify-position@npm:^3.0.0": version: 3.0.3 resolution: "unist-util-stringify-position@npm:3.0.3"