diff --git a/apps/hub/api/auth/[...nextauth].ts b/apps/hub/api/auth/[...nextauth].ts deleted file mode 100644 index 0e9740fe..00000000 --- a/apps/hub/api/auth/[...nextauth].ts +++ /dev/null @@ -1,3 +0,0 @@ -import NextAuth from 'next-auth'; - -export default NextAuth(); diff --git a/apps/hub/app/(auth)/login/page.tsx b/apps/hub/app/(auth)/login/page.tsx new file mode 100644 index 00000000..87d591bb --- /dev/null +++ b/apps/hub/app/(auth)/login/page.tsx @@ -0,0 +1,13 @@ +import { Provider } from 'next-auth/providers/index'; +import { getProviders } from 'next-auth/react'; + +export default async () => { + const providers = await getProviders(); + console.log(providers); + + return ( +
+

Login

+
+ ); +}; diff --git a/apps/hub/app/_components/AuthSessionProvider.tsx b/apps/hub/app/_components/AuthSessionProvider.tsx new file mode 100644 index 00000000..6c1234e6 --- /dev/null +++ b/apps/hub/app/_components/AuthSessionProvider.tsx @@ -0,0 +1,12 @@ +'use client'; + +import { SessionProvider } from 'next-auth/react'; +import { Session } from 'next-auth'; + +export const NextAuthSessionProvider = ({ + children, + session, +}: { + children: React.ReactNode; + session: Session | null; +}) => {children}; diff --git a/apps/hub/app/api/auth/[...nextauth]/auth.ts b/apps/hub/app/api/auth/[...nextauth]/auth.ts new file mode 100644 index 00000000..c4724aaf --- /dev/null +++ b/apps/hub/app/api/auth/[...nextauth]/auth.ts @@ -0,0 +1,53 @@ +import NextAuth, { AuthOptions } from 'next-auth'; +import { PrismaAdapter } from '@next-auth/prisma-adapter'; +import Credentials from 'next-auth/providers/credentials'; +import { prisma } from '@repo/db'; +import bcrypt from 'bcryptjs'; + +export const options = { + providers: [ + Credentials({ + credentials: { + email: { label: 'Email', type: 'email', placeholder: 'E-Mail' }, + password: { label: 'Password', type: 'password' }, + }, + async authorize(credentials, req) { + try { + if (!credentials) throw new Error('No credentials provided'); + const user = await prisma.user.findFirstOrThrow({ + where: { email: credentials.email }, + }); + if (bcrypt.compareSync(credentials.password, user.password)) { + return user; + } + return null; + } catch (error) { + return null; + } + }, + }), + ], + secret: process.env.SECRET, + session: { + strategy: 'jwt', + maxAge: 30 * 24 * 60 * 60, + }, + adapter: PrismaAdapter(prisma), + events: { + async signIn(message) { + console.log('Signed in!', { message }); + }, + async signOut(message) { + console.log('Signed out!', { message }); + }, + async createUser(message) { + console.log('User created!', { message }); + }, + }, + pages: { + signIn: '/login', + signOut: '/logout', + error: '/authError', + newUser: '/register', + }, +} satisfies AuthOptions; diff --git a/apps/hub/app/api/auth/[...nextauth]/route.ts b/apps/hub/app/api/auth/[...nextauth]/route.ts new file mode 100644 index 00000000..26aa23e4 --- /dev/null +++ b/apps/hub/app/api/auth/[...nextauth]/route.ts @@ -0,0 +1,6 @@ +import NextAuth from 'next-auth'; +import { options } from './auth'; + +const handler = NextAuth(options); + +export { handler as GET, handler as POST }; diff --git a/apps/hub/app/layout.tsx b/apps/hub/app/layout.tsx index f7fa87eb..704e53eb 100644 --- a/apps/hub/app/layout.tsx +++ b/apps/hub/app/layout.tsx @@ -1,34 +1,40 @@ -import type { Metadata } from "next"; -import { Geist, Geist_Mono } from "next/font/google"; -import "./globals.css"; +import type { Metadata } from 'next'; +import { Geist, Geist_Mono } from 'next/font/google'; +import './globals.css'; +import { getServerSession } from 'next-auth'; +import { NextAuthSessionProvider } from './_components/AuthSessionProvider'; const geistSans = Geist({ - variable: "--font-geist-sans", - subsets: ["latin"], + variable: '--font-geist-sans', + subsets: ['latin'], }); const geistMono = Geist_Mono({ - variable: "--font-geist-mono", - subsets: ["latin"], + variable: '--font-geist-mono', + subsets: ['latin'], }); export const metadata: Metadata = { - title: "Create Next App", - description: "Generated by create next app", + title: 'Create Next App', + description: 'Generated by create next app', }; -export default function RootLayout({ +export default async function RootLayout({ children, }: Readonly<{ children: React.ReactNode; }>) { + const session = await getServerSession(); + return ( - - {children} - + + + {children} + + ); } diff --git a/apps/hub/app/page.tsx b/apps/hub/app/page.tsx index b648a9e7..1b1ccfe9 100644 --- a/apps/hub/app/page.tsx +++ b/apps/hub/app/page.tsx @@ -1,4 +1,10 @@ +'use client'; + +import { useSession } from 'next-auth/react'; + export default function Home() { + const { data: session, status } = useSession(); + console.log(session, status); return (

Hub

diff --git a/apps/hub/lib/auth.ts b/apps/hub/lib/auth.ts deleted file mode 100644 index a4fd8cb7..00000000 --- a/apps/hub/lib/auth.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { AuthOptions } from 'next-auth'; -import { PrismaAdapter } from '@next-auth/prisma-adapter'; -import Email from 'next-auth/providers/email'; -import { prisma } from '@repo/db'; - -export const options = { - providers: [ - Email({ - server: process.env.EMAIL_SERVER, - from: process.env.EMAIL_FROM, - }), - ], - secret: process.env.SECRET, - adapter: PrismaAdapter(prisma), -} satisfies AuthOptions; diff --git a/apps/hub/package.json b/apps/hub/package.json index 126963a6..8db519b3 100644 --- a/apps/hub/package.json +++ b/apps/hub/package.json @@ -11,6 +11,7 @@ "dependencies": { "@next-auth/prisma-adapter": "^1.0.7", "@repo/ui": "*", + "bcryptjs": "^2.4.3", "next": "15.1.4", "next-auth": "^4.24.11", "react": "^19.0.0", @@ -18,6 +19,7 @@ }, "devDependencies": { "@eslint/eslintrc": "^3", + "@types/bcryptjs": "^2.4.6", "@types/node": "^20", "@types/react": "^19", "@types/react-dom": "^19", diff --git a/package-lock.json b/package-lock.json index cb108167..85f51956 100644 --- a/package-lock.json +++ b/package-lock.json @@ -40,6 +40,7 @@ "dependencies": { "@next-auth/prisma-adapter": "^1.0.7", "@repo/ui": "*", + "bcryptjs": "^2.4.3", "next": "15.1.4", "next-auth": "^4.24.11", "react": "^19.0.0", @@ -47,6 +48,7 @@ }, "devDependencies": { "@eslint/eslintrc": "^3", + "@types/bcryptjs": "^2.4.6", "@types/node": "^20", "@types/react": "^19", "@types/react-dom": "^19", @@ -1219,6 +1221,12 @@ "workspaces": "dist/cli.js" } }, + "node_modules/@types/bcryptjs": { + "version": "2.4.6", + "resolved": "https://registry.npmjs.org/@types/bcryptjs/-/bcryptjs-2.4.6.tgz", + "integrity": "sha512-9xlo6R2qDs5uixm0bcIqCeMCE6HiQsIyel9KQySStiyqNl2tnj2mP3DX1Nf56MD6KMenNNlBBsy3LJ7gUEQPXQ==", + "dev": true + }, "node_modules/@types/estree": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", @@ -1921,6 +1929,11 @@ "node": ">=10.0.0" } }, + "node_modules/bcryptjs": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/bcryptjs/-/bcryptjs-2.4.3.tgz", + "integrity": "sha512-V/Hy/X9Vt7f3BbPJEi8BdVFMByHi+jNXrYkW3huaybV/kQ0KJg0Y6PkEMbn+zeT+i+SiKZ/HMqJGIIt4LZDqNQ==" + }, "node_modules/binary-extensions": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", diff --git a/packages/database/generated/client/edge.js b/packages/database/generated/client/edge.js index e48582ec..05efc251 100644 --- a/packages/database/generated/client/edge.js +++ b/packages/database/generated/client/edge.js @@ -114,8 +114,10 @@ exports.Prisma.SessionScalarFieldEnum = { exports.Prisma.UserScalarFieldEnum = { id: 'id', - name: 'name', + firstname: 'firstname', + lastname: 'lastname', email: 'email', + password: 'password', emailVerified: 'emailVerified', image: 'image', createdAt: 'createdAt', @@ -182,7 +184,7 @@ const config = { "isCustomOutput": true }, "relativeEnvPaths": { - "rootEnvPath": "../../.env", + "rootEnvPath": null, "schemaEnvPath": "../../.env" }, "relativePath": "../../prisma", @@ -201,13 +203,13 @@ const config = { } } }, - "inlineSchema": "// This is your Prisma schema file,\n// learn more about it in the docs: https://pris.ly/d/prisma-schema\n\n// Looking for ways to speed up your queries, or scale easily with your serverless or edge functions?\n// Try Prisma Accelerate: https://pris.ly/cli/accelerate-init\n\ngenerator client {\n provider = \"prisma-client-js\"\n output = \"../generated/client\"\n}\n\ndatasource db {\n provider = \"postgresql\"\n url = env(\"DATABASE_URL\")\n}\n\nmodel Account {\n id Int @id @default(autoincrement())\n compoundId String @unique @map(name: \"compound_id\")\n userId Int @map(name: \"user_id\")\n providerType String @map(name: \"provider_type\")\n providerId String @map(name: \"provider_id\")\n providerAccountId String @map(name: \"provider_account_id\")\n refreshToken String? @map(name: \"refresh_token\")\n accessToken String? @map(name: \"access_token\")\n accessTokenExpires DateTime? @map(name: \"access_token_expires\")\n createdAt DateTime @default(now()) @map(name: \"created_at\")\n updatedAt DateTime @default(now()) @map(name: \"updated_at\")\n\n @@index([providerAccountId], name: \"providerAccountId\")\n @@index([providerId], name: \"providerId\")\n @@index([userId], name: \"userId\")\n @@map(name: \"accounts\")\n}\n\nmodel Session {\n id Int @id @default(autoincrement())\n userId Int @map(name: \"user_id\")\n expires DateTime\n sessionToken String @unique @map(name: \"session_token\")\n accessToken String @unique @map(name: \"access_token\")\n createdAt DateTime @default(now()) @map(name: \"created_at\")\n updatedAt DateTime @default(now()) @map(name: \"updated_at\")\n\n @@map(name: \"sessions\")\n}\n\nmodel User {\n id Int @id @default(autoincrement())\n name String?\n email String? @unique\n emailVerified DateTime? @map(name: \"email_verified\")\n image String?\n createdAt DateTime @default(now()) @map(name: \"created_at\")\n updatedAt DateTime @default(now()) @map(name: \"updated_at\")\n\n @@map(name: \"users\")\n}\n\nmodel VerificationRequest {\n id Int @id @default(autoincrement())\n identifier String\n token String @unique\n expires DateTime\n createdAt DateTime @default(now()) @map(name: \"created_at\")\n updatedAt DateTime @default(now()) @map(name: \"updated_at\")\n\n @@map(name: \"verification_requests\")\n}\n", - "inlineSchemaHash": "4afa9d08ee6c5633f129620f90a6ddba1e7901ef2d5539ef66920811ec21996d", + "inlineSchema": "// This is your Prisma schema file,\n// learn more about it in the docs: https://pris.ly/d/prisma-schema\n\n// Looking for ways to speed up your queries, or scale easily with your serverless or edge functions?\n// Try Prisma Accelerate: https://pris.ly/cli/accelerate-init\n\ngenerator client {\n provider = \"prisma-client-js\"\n output = \"../generated/client\"\n}\n\ndatasource db {\n provider = \"postgresql\"\n url = env(\"DATABASE_URL\")\n}\n\nmodel Account {\n id Int @id @default(autoincrement())\n compoundId String @unique @map(name: \"compound_id\")\n userId Int @map(name: \"user_id\")\n providerType String @map(name: \"provider_type\")\n providerId String @map(name: \"provider_id\")\n providerAccountId String @map(name: \"provider_account_id\")\n refreshToken String? @map(name: \"refresh_token\")\n accessToken String? @map(name: \"access_token\")\n accessTokenExpires DateTime? @map(name: \"access_token_expires\")\n createdAt DateTime @default(now()) @map(name: \"created_at\")\n updatedAt DateTime @default(now()) @map(name: \"updated_at\")\n\n @@index([providerAccountId], name: \"providerAccountId\")\n @@index([providerId], name: \"providerId\")\n @@index([userId], name: \"userId\")\n @@map(name: \"accounts\")\n}\n\nmodel Session {\n id Int @id @default(autoincrement())\n userId Int @map(name: \"user_id\")\n expires DateTime\n sessionToken String @unique @map(name: \"session_token\")\n accessToken String @unique @map(name: \"access_token\")\n createdAt DateTime @default(now()) @map(name: \"created_at\")\n updatedAt DateTime @default(now()) @map(name: \"updated_at\")\n\n @@map(name: \"sessions\")\n}\n\nmodel User {\n id String @id @default(uuid())\n firstname String\n lastname String\n email String @unique\n password String\n emailVerified DateTime? @map(name: \"email_verified\")\n image String?\n createdAt DateTime @default(now()) @map(name: \"created_at\")\n updatedAt DateTime @default(now()) @map(name: \"updated_at\")\n\n @@map(name: \"users\")\n}\n\nmodel VerificationRequest {\n id Int @id @default(autoincrement())\n identifier String\n token String @unique\n expires DateTime\n createdAt DateTime @default(now()) @map(name: \"created_at\")\n updatedAt DateTime @default(now()) @map(name: \"updated_at\")\n\n @@map(name: \"verification_requests\")\n}\n", + "inlineSchemaHash": "d87cc9e31acbe85cd56098c5d269c76997a9749cee7cfb75c8467e9fc1a14c80", "copyEngine": true } config.dirname = '/' -config.runtimeDataModel = JSON.parse("{\"models\":{\"Account\":{\"dbName\":\"accounts\",\"schema\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":{\"name\":\"autoincrement\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"compoundId\",\"dbName\":\"compound_id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":true,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"userId\",\"dbName\":\"user_id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"providerType\",\"dbName\":\"provider_type\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"providerId\",\"dbName\":\"provider_id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"providerAccountId\",\"dbName\":\"provider_account_id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"refreshToken\",\"dbName\":\"refresh_token\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"accessToken\",\"dbName\":\"access_token\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"accessTokenExpires\",\"dbName\":\"access_token_expires\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"dbName\":\"created_at\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":null,\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"updatedAt\",\"dbName\":\"updated_at\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":null,\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"Session\":{\"dbName\":\"sessions\",\"schema\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":{\"name\":\"autoincrement\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"userId\",\"dbName\":\"user_id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"expires\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"sessionToken\",\"dbName\":\"session_token\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":true,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"accessToken\",\"dbName\":\"access_token\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":true,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"dbName\":\"created_at\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":null,\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"updatedAt\",\"dbName\":\"updated_at\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":null,\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"User\":{\"dbName\":\"users\",\"schema\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":{\"name\":\"autoincrement\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"name\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"email\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":true,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"emailVerified\",\"dbName\":\"email_verified\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"image\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"dbName\":\"created_at\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":null,\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"updatedAt\",\"dbName\":\"updated_at\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":null,\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"VerificationRequest\":{\"dbName\":\"verification_requests\",\"schema\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":{\"name\":\"autoincrement\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"identifier\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"token\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":true,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"expires\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"dbName\":\"created_at\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":null,\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"updatedAt\",\"dbName\":\"updated_at\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":null,\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false}},\"enums\":{},\"types\":{}}") +config.runtimeDataModel = JSON.parse("{\"models\":{\"Account\":{\"dbName\":\"accounts\",\"schema\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":{\"name\":\"autoincrement\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"compoundId\",\"dbName\":\"compound_id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":true,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"userId\",\"dbName\":\"user_id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"providerType\",\"dbName\":\"provider_type\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"providerId\",\"dbName\":\"provider_id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"providerAccountId\",\"dbName\":\"provider_account_id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"refreshToken\",\"dbName\":\"refresh_token\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"accessToken\",\"dbName\":\"access_token\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"accessTokenExpires\",\"dbName\":\"access_token_expires\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"dbName\":\"created_at\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":null,\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"updatedAt\",\"dbName\":\"updated_at\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":null,\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"Session\":{\"dbName\":\"sessions\",\"schema\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":{\"name\":\"autoincrement\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"userId\",\"dbName\":\"user_id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"expires\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"sessionToken\",\"dbName\":\"session_token\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":true,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"accessToken\",\"dbName\":\"access_token\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":true,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"dbName\":\"created_at\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":null,\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"updatedAt\",\"dbName\":\"updated_at\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":null,\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"User\":{\"dbName\":\"users\",\"schema\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"nativeType\":null,\"default\":{\"name\":\"uuid\",\"args\":[4]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"firstname\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"lastname\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"email\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":true,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"password\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"emailVerified\",\"dbName\":\"email_verified\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"image\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"dbName\":\"created_at\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":null,\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"updatedAt\",\"dbName\":\"updated_at\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":null,\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"VerificationRequest\":{\"dbName\":\"verification_requests\",\"schema\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":{\"name\":\"autoincrement\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"identifier\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"token\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":true,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"expires\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"dbName\":\"created_at\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":null,\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"updatedAt\",\"dbName\":\"updated_at\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":null,\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false}},\"enums\":{},\"types\":{}}") defineDmmfProperty(exports.Prisma, config.runtimeDataModel) config.engineWasm = undefined diff --git a/packages/database/generated/client/index-browser.js b/packages/database/generated/client/index-browser.js index 54a91af6..42fc5db2 100644 --- a/packages/database/generated/client/index-browser.js +++ b/packages/database/generated/client/index-browser.js @@ -143,8 +143,10 @@ exports.Prisma.SessionScalarFieldEnum = { exports.Prisma.UserScalarFieldEnum = { id: 'id', - name: 'name', + firstname: 'firstname', + lastname: 'lastname', email: 'email', + password: 'password', emailVerified: 'emailVerified', image: 'image', createdAt: 'createdAt', diff --git a/packages/database/generated/client/index.d.ts b/packages/database/generated/client/index.d.ts index c24868b0..2e33d7ae 100644 --- a/packages/database/generated/client/index.d.ts +++ b/packages/database/generated/client/index.d.ts @@ -3291,24 +3291,16 @@ export namespace Prisma { export type AggregateUser = { _count: UserCountAggregateOutputType | null - _avg: UserAvgAggregateOutputType | null - _sum: UserSumAggregateOutputType | null _min: UserMinAggregateOutputType | null _max: UserMaxAggregateOutputType | null } - export type UserAvgAggregateOutputType = { - id: number | null - } - - export type UserSumAggregateOutputType = { - id: number | null - } - export type UserMinAggregateOutputType = { - id: number | null - name: string | null + id: string | null + firstname: string | null + lastname: string | null email: string | null + password: string | null emailVerified: Date | null image: string | null createdAt: Date | null @@ -3316,9 +3308,11 @@ export namespace Prisma { } export type UserMaxAggregateOutputType = { - id: number | null - name: string | null + id: string | null + firstname: string | null + lastname: string | null email: string | null + password: string | null emailVerified: Date | null image: string | null createdAt: Date | null @@ -3327,8 +3321,10 @@ export namespace Prisma { export type UserCountAggregateOutputType = { id: number - name: number + firstname: number + lastname: number email: number + password: number emailVerified: number image: number createdAt: number @@ -3337,18 +3333,12 @@ export namespace Prisma { } - export type UserAvgAggregateInputType = { - id?: true - } - - export type UserSumAggregateInputType = { - id?: true - } - export type UserMinAggregateInputType = { id?: true - name?: true + firstname?: true + lastname?: true email?: true + password?: true emailVerified?: true image?: true createdAt?: true @@ -3357,8 +3347,10 @@ export namespace Prisma { export type UserMaxAggregateInputType = { id?: true - name?: true + firstname?: true + lastname?: true email?: true + password?: true emailVerified?: true image?: true createdAt?: true @@ -3367,8 +3359,10 @@ export namespace Prisma { export type UserCountAggregateInputType = { id?: true - name?: true + firstname?: true + lastname?: true email?: true + password?: true emailVerified?: true image?: true createdAt?: true @@ -3411,18 +3405,6 @@ export namespace Prisma { * Count returned Users **/ _count?: true | UserCountAggregateInputType - /** - * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} - * - * Select which fields to average - **/ - _avg?: UserAvgAggregateInputType - /** - * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} - * - * Select which fields to sum - **/ - _sum?: UserSumAggregateInputType /** * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} * @@ -3456,23 +3438,21 @@ export namespace Prisma { take?: number skip?: number _count?: UserCountAggregateInputType | true - _avg?: UserAvgAggregateInputType - _sum?: UserSumAggregateInputType _min?: UserMinAggregateInputType _max?: UserMaxAggregateInputType } export type UserGroupByOutputType = { - id: number - name: string | null - email: string | null + id: string + firstname: string + lastname: string + email: string + password: string emailVerified: Date | null image: string | null createdAt: Date updatedAt: Date _count: UserCountAggregateOutputType | null - _avg: UserAvgAggregateOutputType | null - _sum: UserSumAggregateOutputType | null _min: UserMinAggregateOutputType | null _max: UserMaxAggregateOutputType | null } @@ -3493,8 +3473,10 @@ export namespace Prisma { export type UserSelect = $Extensions.GetSelect<{ id?: boolean - name?: boolean + firstname?: boolean + lastname?: boolean email?: boolean + password?: boolean emailVerified?: boolean image?: boolean createdAt?: boolean @@ -3503,8 +3485,10 @@ export namespace Prisma { export type UserSelectCreateManyAndReturn = $Extensions.GetSelect<{ id?: boolean - name?: boolean + firstname?: boolean + lastname?: boolean email?: boolean + password?: boolean emailVerified?: boolean image?: boolean createdAt?: boolean @@ -3513,8 +3497,10 @@ export namespace Prisma { export type UserSelectUpdateManyAndReturn = $Extensions.GetSelect<{ id?: boolean - name?: boolean + firstname?: boolean + lastname?: boolean email?: boolean + password?: boolean emailVerified?: boolean image?: boolean createdAt?: boolean @@ -3523,23 +3509,27 @@ export namespace Prisma { export type UserSelectScalar = { id?: boolean - name?: boolean + firstname?: boolean + lastname?: boolean email?: boolean + password?: boolean emailVerified?: boolean image?: boolean createdAt?: boolean updatedAt?: boolean } - export type UserOmit = $Extensions.GetOmit<"id" | "name" | "email" | "emailVerified" | "image" | "createdAt" | "updatedAt", ExtArgs["result"]["user"]> + export type UserOmit = $Extensions.GetOmit<"id" | "firstname" | "lastname" | "email" | "password" | "emailVerified" | "image" | "createdAt" | "updatedAt", ExtArgs["result"]["user"]> export type $UserPayload = { name: "User" objects: {} scalars: $Extensions.GetPayloadResult<{ - id: number - name: string | null - email: string | null + id: string + firstname: string + lastname: string + email: string + password: string emailVerified: Date | null image: string | null createdAt: Date @@ -3967,9 +3957,11 @@ export namespace Prisma { * Fields of the User model */ interface UserFieldRefs { - readonly id: FieldRef<"User", 'Int'> - readonly name: FieldRef<"User", 'String'> + readonly id: FieldRef<"User", 'String'> + readonly firstname: FieldRef<"User", 'String'> + readonly lastname: FieldRef<"User", 'String'> readonly email: FieldRef<"User", 'String'> + readonly password: FieldRef<"User", 'String'> readonly emailVerified: FieldRef<"User", 'DateTime'> readonly image: FieldRef<"User", 'String'> readonly createdAt: FieldRef<"User", 'DateTime'> @@ -4168,7 +4160,7 @@ export namespace Prisma { /** * The data needed to create a User. */ - data?: XOR + data: XOR } /** @@ -5404,8 +5396,10 @@ export namespace Prisma { export const UserScalarFieldEnum: { id: 'id', - name: 'name', + firstname: 'firstname', + lastname: 'lastname', email: 'email', + password: 'password', emailVerified: 'emailVerified', image: 'image', createdAt: 'createdAt', @@ -5667,9 +5661,11 @@ export namespace Prisma { AND?: UserWhereInput | UserWhereInput[] OR?: UserWhereInput[] NOT?: UserWhereInput | UserWhereInput[] - id?: IntFilter<"User"> | number - name?: StringNullableFilter<"User"> | string | null - email?: StringNullableFilter<"User"> | string | null + id?: StringFilter<"User"> | string + firstname?: StringFilter<"User"> | string + lastname?: StringFilter<"User"> | string + email?: StringFilter<"User"> | string + password?: StringFilter<"User"> | string emailVerified?: DateTimeNullableFilter<"User"> | Date | string | null image?: StringNullableFilter<"User"> | string | null createdAt?: DateTimeFilter<"User"> | Date | string @@ -5678,8 +5674,10 @@ export namespace Prisma { export type UserOrderByWithRelationInput = { id?: SortOrder - name?: SortOrderInput | SortOrder - email?: SortOrderInput | SortOrder + firstname?: SortOrder + lastname?: SortOrder + email?: SortOrder + password?: SortOrder emailVerified?: SortOrderInput | SortOrder image?: SortOrderInput | SortOrder createdAt?: SortOrder @@ -5687,12 +5685,14 @@ export namespace Prisma { } export type UserWhereUniqueInput = Prisma.AtLeast<{ - id?: number + id?: string email?: string AND?: UserWhereInput | UserWhereInput[] OR?: UserWhereInput[] NOT?: UserWhereInput | UserWhereInput[] - name?: StringNullableFilter<"User"> | string | null + firstname?: StringFilter<"User"> | string + lastname?: StringFilter<"User"> | string + password?: StringFilter<"User"> | string emailVerified?: DateTimeNullableFilter<"User"> | Date | string | null image?: StringNullableFilter<"User"> | string | null createdAt?: DateTimeFilter<"User"> | Date | string @@ -5701,26 +5701,28 @@ export namespace Prisma { export type UserOrderByWithAggregationInput = { id?: SortOrder - name?: SortOrderInput | SortOrder - email?: SortOrderInput | SortOrder + firstname?: SortOrder + lastname?: SortOrder + email?: SortOrder + password?: SortOrder emailVerified?: SortOrderInput | SortOrder image?: SortOrderInput | SortOrder createdAt?: SortOrder updatedAt?: SortOrder _count?: UserCountOrderByAggregateInput - _avg?: UserAvgOrderByAggregateInput _max?: UserMaxOrderByAggregateInput _min?: UserMinOrderByAggregateInput - _sum?: UserSumOrderByAggregateInput } export type UserScalarWhereWithAggregatesInput = { AND?: UserScalarWhereWithAggregatesInput | UserScalarWhereWithAggregatesInput[] OR?: UserScalarWhereWithAggregatesInput[] NOT?: UserScalarWhereWithAggregatesInput | UserScalarWhereWithAggregatesInput[] - id?: IntWithAggregatesFilter<"User"> | number - name?: StringNullableWithAggregatesFilter<"User"> | string | null - email?: StringNullableWithAggregatesFilter<"User"> | string | null + id?: StringWithAggregatesFilter<"User"> | string + firstname?: StringWithAggregatesFilter<"User"> | string + lastname?: StringWithAggregatesFilter<"User"> | string + email?: StringWithAggregatesFilter<"User"> | string + password?: StringWithAggregatesFilter<"User"> | string emailVerified?: DateTimeNullableWithAggregatesFilter<"User"> | Date | string | null image?: StringNullableWithAggregatesFilter<"User"> | string | null createdAt?: DateTimeWithAggregatesFilter<"User"> | Date | string @@ -5949,8 +5951,11 @@ export namespace Prisma { } export type UserCreateInput = { - name?: string | null - email?: string | null + id?: string + firstname: string + lastname: string + email: string + password: string emailVerified?: Date | string | null image?: string | null createdAt?: Date | string @@ -5958,9 +5963,11 @@ export namespace Prisma { } export type UserUncheckedCreateInput = { - id?: number - name?: string | null - email?: string | null + id?: string + firstname: string + lastname: string + email: string + password: string emailVerified?: Date | string | null image?: string | null createdAt?: Date | string @@ -5968,8 +5975,11 @@ export namespace Prisma { } export type UserUpdateInput = { - name?: NullableStringFieldUpdateOperationsInput | string | null - email?: NullableStringFieldUpdateOperationsInput | string | null + id?: StringFieldUpdateOperationsInput | string + firstname?: StringFieldUpdateOperationsInput | string + lastname?: StringFieldUpdateOperationsInput | string + email?: StringFieldUpdateOperationsInput | string + password?: StringFieldUpdateOperationsInput | string emailVerified?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null image?: NullableStringFieldUpdateOperationsInput | string | null createdAt?: DateTimeFieldUpdateOperationsInput | Date | string @@ -5977,9 +5987,11 @@ export namespace Prisma { } export type UserUncheckedUpdateInput = { - id?: IntFieldUpdateOperationsInput | number - name?: NullableStringFieldUpdateOperationsInput | string | null - email?: NullableStringFieldUpdateOperationsInput | string | null + id?: StringFieldUpdateOperationsInput | string + firstname?: StringFieldUpdateOperationsInput | string + lastname?: StringFieldUpdateOperationsInput | string + email?: StringFieldUpdateOperationsInput | string + password?: StringFieldUpdateOperationsInput | string emailVerified?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null image?: NullableStringFieldUpdateOperationsInput | string | null createdAt?: DateTimeFieldUpdateOperationsInput | Date | string @@ -5987,9 +5999,11 @@ export namespace Prisma { } export type UserCreateManyInput = { - id?: number - name?: string | null - email?: string | null + id?: string + firstname: string + lastname: string + email: string + password: string emailVerified?: Date | string | null image?: string | null createdAt?: Date | string @@ -5997,8 +6011,11 @@ export namespace Prisma { } export type UserUpdateManyMutationInput = { - name?: NullableStringFieldUpdateOperationsInput | string | null - email?: NullableStringFieldUpdateOperationsInput | string | null + id?: StringFieldUpdateOperationsInput | string + firstname?: StringFieldUpdateOperationsInput | string + lastname?: StringFieldUpdateOperationsInput | string + email?: StringFieldUpdateOperationsInput | string + password?: StringFieldUpdateOperationsInput | string emailVerified?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null image?: NullableStringFieldUpdateOperationsInput | string | null createdAt?: DateTimeFieldUpdateOperationsInput | Date | string @@ -6006,9 +6023,11 @@ export namespace Prisma { } export type UserUncheckedUpdateManyInput = { - id?: IntFieldUpdateOperationsInput | number - name?: NullableStringFieldUpdateOperationsInput | string | null - email?: NullableStringFieldUpdateOperationsInput | string | null + id?: StringFieldUpdateOperationsInput | string + firstname?: StringFieldUpdateOperationsInput | string + lastname?: StringFieldUpdateOperationsInput | string + email?: StringFieldUpdateOperationsInput | string + password?: StringFieldUpdateOperationsInput | string emailVerified?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null image?: NullableStringFieldUpdateOperationsInput | string | null createdAt?: DateTimeFieldUpdateOperationsInput | Date | string @@ -6317,22 +6336,22 @@ export namespace Prisma { export type UserCountOrderByAggregateInput = { id?: SortOrder - name?: SortOrder + firstname?: SortOrder + lastname?: SortOrder email?: SortOrder + password?: SortOrder emailVerified?: SortOrder image?: SortOrder createdAt?: SortOrder updatedAt?: SortOrder } - export type UserAvgOrderByAggregateInput = { - id?: SortOrder - } - export type UserMaxOrderByAggregateInput = { id?: SortOrder - name?: SortOrder + firstname?: SortOrder + lastname?: SortOrder email?: SortOrder + password?: SortOrder emailVerified?: SortOrder image?: SortOrder createdAt?: SortOrder @@ -6341,18 +6360,16 @@ export namespace Prisma { export type UserMinOrderByAggregateInput = { id?: SortOrder - name?: SortOrder + firstname?: SortOrder + lastname?: SortOrder email?: SortOrder + password?: SortOrder emailVerified?: SortOrder image?: SortOrder createdAt?: SortOrder updatedAt?: SortOrder } - export type UserSumOrderByAggregateInput = { - id?: SortOrder - } - export type VerificationRequestCountOrderByAggregateInput = { id?: SortOrder identifier?: SortOrder diff --git a/packages/database/generated/client/index.js b/packages/database/generated/client/index.js index 5fd841f3..d33eb60c 100644 --- a/packages/database/generated/client/index.js +++ b/packages/database/generated/client/index.js @@ -115,8 +115,10 @@ exports.Prisma.SessionScalarFieldEnum = { exports.Prisma.UserScalarFieldEnum = { id: 'id', - name: 'name', + firstname: 'firstname', + lastname: 'lastname', email: 'email', + password: 'password', emailVerified: 'emailVerified', image: 'image', createdAt: 'createdAt', @@ -183,7 +185,7 @@ const config = { "isCustomOutput": true }, "relativeEnvPaths": { - "rootEnvPath": "../../.env", + "rootEnvPath": null, "schemaEnvPath": "../../.env" }, "relativePath": "../../prisma", @@ -202,8 +204,8 @@ const config = { } } }, - "inlineSchema": "// This is your Prisma schema file,\n// learn more about it in the docs: https://pris.ly/d/prisma-schema\n\n// Looking for ways to speed up your queries, or scale easily with your serverless or edge functions?\n// Try Prisma Accelerate: https://pris.ly/cli/accelerate-init\n\ngenerator client {\n provider = \"prisma-client-js\"\n output = \"../generated/client\"\n}\n\ndatasource db {\n provider = \"postgresql\"\n url = env(\"DATABASE_URL\")\n}\n\nmodel Account {\n id Int @id @default(autoincrement())\n compoundId String @unique @map(name: \"compound_id\")\n userId Int @map(name: \"user_id\")\n providerType String @map(name: \"provider_type\")\n providerId String @map(name: \"provider_id\")\n providerAccountId String @map(name: \"provider_account_id\")\n refreshToken String? @map(name: \"refresh_token\")\n accessToken String? @map(name: \"access_token\")\n accessTokenExpires DateTime? @map(name: \"access_token_expires\")\n createdAt DateTime @default(now()) @map(name: \"created_at\")\n updatedAt DateTime @default(now()) @map(name: \"updated_at\")\n\n @@index([providerAccountId], name: \"providerAccountId\")\n @@index([providerId], name: \"providerId\")\n @@index([userId], name: \"userId\")\n @@map(name: \"accounts\")\n}\n\nmodel Session {\n id Int @id @default(autoincrement())\n userId Int @map(name: \"user_id\")\n expires DateTime\n sessionToken String @unique @map(name: \"session_token\")\n accessToken String @unique @map(name: \"access_token\")\n createdAt DateTime @default(now()) @map(name: \"created_at\")\n updatedAt DateTime @default(now()) @map(name: \"updated_at\")\n\n @@map(name: \"sessions\")\n}\n\nmodel User {\n id Int @id @default(autoincrement())\n name String?\n email String? @unique\n emailVerified DateTime? @map(name: \"email_verified\")\n image String?\n createdAt DateTime @default(now()) @map(name: \"created_at\")\n updatedAt DateTime @default(now()) @map(name: \"updated_at\")\n\n @@map(name: \"users\")\n}\n\nmodel VerificationRequest {\n id Int @id @default(autoincrement())\n identifier String\n token String @unique\n expires DateTime\n createdAt DateTime @default(now()) @map(name: \"created_at\")\n updatedAt DateTime @default(now()) @map(name: \"updated_at\")\n\n @@map(name: \"verification_requests\")\n}\n", - "inlineSchemaHash": "4afa9d08ee6c5633f129620f90a6ddba1e7901ef2d5539ef66920811ec21996d", + "inlineSchema": "// This is your Prisma schema file,\n// learn more about it in the docs: https://pris.ly/d/prisma-schema\n\n// Looking for ways to speed up your queries, or scale easily with your serverless or edge functions?\n// Try Prisma Accelerate: https://pris.ly/cli/accelerate-init\n\ngenerator client {\n provider = \"prisma-client-js\"\n output = \"../generated/client\"\n}\n\ndatasource db {\n provider = \"postgresql\"\n url = env(\"DATABASE_URL\")\n}\n\nmodel Account {\n id Int @id @default(autoincrement())\n compoundId String @unique @map(name: \"compound_id\")\n userId Int @map(name: \"user_id\")\n providerType String @map(name: \"provider_type\")\n providerId String @map(name: \"provider_id\")\n providerAccountId String @map(name: \"provider_account_id\")\n refreshToken String? @map(name: \"refresh_token\")\n accessToken String? @map(name: \"access_token\")\n accessTokenExpires DateTime? @map(name: \"access_token_expires\")\n createdAt DateTime @default(now()) @map(name: \"created_at\")\n updatedAt DateTime @default(now()) @map(name: \"updated_at\")\n\n @@index([providerAccountId], name: \"providerAccountId\")\n @@index([providerId], name: \"providerId\")\n @@index([userId], name: \"userId\")\n @@map(name: \"accounts\")\n}\n\nmodel Session {\n id Int @id @default(autoincrement())\n userId Int @map(name: \"user_id\")\n expires DateTime\n sessionToken String @unique @map(name: \"session_token\")\n accessToken String @unique @map(name: \"access_token\")\n createdAt DateTime @default(now()) @map(name: \"created_at\")\n updatedAt DateTime @default(now()) @map(name: \"updated_at\")\n\n @@map(name: \"sessions\")\n}\n\nmodel User {\n id String @id @default(uuid())\n firstname String\n lastname String\n email String @unique\n password String\n emailVerified DateTime? @map(name: \"email_verified\")\n image String?\n createdAt DateTime @default(now()) @map(name: \"created_at\")\n updatedAt DateTime @default(now()) @map(name: \"updated_at\")\n\n @@map(name: \"users\")\n}\n\nmodel VerificationRequest {\n id Int @id @default(autoincrement())\n identifier String\n token String @unique\n expires DateTime\n createdAt DateTime @default(now()) @map(name: \"created_at\")\n updatedAt DateTime @default(now()) @map(name: \"updated_at\")\n\n @@map(name: \"verification_requests\")\n}\n", + "inlineSchemaHash": "d87cc9e31acbe85cd56098c5d269c76997a9749cee7cfb75c8467e9fc1a14c80", "copyEngine": true } @@ -224,7 +226,7 @@ if (!fs.existsSync(path.join(__dirname, 'schema.prisma'))) { config.isBundled = true } -config.runtimeDataModel = JSON.parse("{\"models\":{\"Account\":{\"dbName\":\"accounts\",\"schema\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":{\"name\":\"autoincrement\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"compoundId\",\"dbName\":\"compound_id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":true,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"userId\",\"dbName\":\"user_id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"providerType\",\"dbName\":\"provider_type\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"providerId\",\"dbName\":\"provider_id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"providerAccountId\",\"dbName\":\"provider_account_id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"refreshToken\",\"dbName\":\"refresh_token\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"accessToken\",\"dbName\":\"access_token\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"accessTokenExpires\",\"dbName\":\"access_token_expires\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"dbName\":\"created_at\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":null,\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"updatedAt\",\"dbName\":\"updated_at\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":null,\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"Session\":{\"dbName\":\"sessions\",\"schema\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":{\"name\":\"autoincrement\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"userId\",\"dbName\":\"user_id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"expires\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"sessionToken\",\"dbName\":\"session_token\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":true,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"accessToken\",\"dbName\":\"access_token\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":true,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"dbName\":\"created_at\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":null,\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"updatedAt\",\"dbName\":\"updated_at\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":null,\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"User\":{\"dbName\":\"users\",\"schema\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":{\"name\":\"autoincrement\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"name\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"email\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":true,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"emailVerified\",\"dbName\":\"email_verified\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"image\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"dbName\":\"created_at\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":null,\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"updatedAt\",\"dbName\":\"updated_at\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":null,\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"VerificationRequest\":{\"dbName\":\"verification_requests\",\"schema\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":{\"name\":\"autoincrement\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"identifier\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"token\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":true,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"expires\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"dbName\":\"created_at\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":null,\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"updatedAt\",\"dbName\":\"updated_at\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":null,\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false}},\"enums\":{},\"types\":{}}") +config.runtimeDataModel = JSON.parse("{\"models\":{\"Account\":{\"dbName\":\"accounts\",\"schema\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":{\"name\":\"autoincrement\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"compoundId\",\"dbName\":\"compound_id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":true,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"userId\",\"dbName\":\"user_id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"providerType\",\"dbName\":\"provider_type\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"providerId\",\"dbName\":\"provider_id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"providerAccountId\",\"dbName\":\"provider_account_id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"refreshToken\",\"dbName\":\"refresh_token\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"accessToken\",\"dbName\":\"access_token\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"accessTokenExpires\",\"dbName\":\"access_token_expires\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"dbName\":\"created_at\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":null,\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"updatedAt\",\"dbName\":\"updated_at\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":null,\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"Session\":{\"dbName\":\"sessions\",\"schema\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":{\"name\":\"autoincrement\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"userId\",\"dbName\":\"user_id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"expires\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"sessionToken\",\"dbName\":\"session_token\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":true,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"accessToken\",\"dbName\":\"access_token\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":true,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"dbName\":\"created_at\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":null,\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"updatedAt\",\"dbName\":\"updated_at\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":null,\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"User\":{\"dbName\":\"users\",\"schema\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"nativeType\":null,\"default\":{\"name\":\"uuid\",\"args\":[4]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"firstname\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"lastname\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"email\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":true,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"password\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"emailVerified\",\"dbName\":\"email_verified\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"image\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"dbName\":\"created_at\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":null,\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"updatedAt\",\"dbName\":\"updated_at\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":null,\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"VerificationRequest\":{\"dbName\":\"verification_requests\",\"schema\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":{\"name\":\"autoincrement\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"identifier\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"token\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":true,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"expires\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"dbName\":\"created_at\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":null,\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"updatedAt\",\"dbName\":\"updated_at\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":null,\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false}},\"enums\":{},\"types\":{}}") defineDmmfProperty(exports.Prisma, config.runtimeDataModel) config.engineWasm = undefined diff --git a/packages/database/generated/client/package.json b/packages/database/generated/client/package.json index c384a159..22f799be 100644 --- a/packages/database/generated/client/package.json +++ b/packages/database/generated/client/package.json @@ -1,5 +1,5 @@ { - "name": "prisma-client-9c17f8cb04532af79797432ff37d662dfecbed92d0f99ae2e0477ea71381eed4", + "name": "prisma-client-c7fdd0dfe7b541db0276548838969aa318b26f0ac7912a69d0a6f15415695df6", "main": "index.js", "types": "index.d.ts", "browser": "index-browser.js", diff --git a/packages/database/generated/client/schema.prisma b/packages/database/generated/client/schema.prisma index 803e5dda..87c160ac 100644 --- a/packages/database/generated/client/schema.prisma +++ b/packages/database/generated/client/schema.prisma @@ -46,9 +46,11 @@ model Session { } model User { - id Int @id @default(autoincrement()) - name String? - email String? @unique + id String @id @default(uuid()) + firstname String + lastname String + email String @unique + password String emailVerified DateTime? @map(name: "email_verified") image String? createdAt DateTime @default(now()) @map(name: "created_at") diff --git a/packages/database/generated/client/wasm.js b/packages/database/generated/client/wasm.js index 54a91af6..42fc5db2 100644 --- a/packages/database/generated/client/wasm.js +++ b/packages/database/generated/client/wasm.js @@ -143,8 +143,10 @@ exports.Prisma.SessionScalarFieldEnum = { exports.Prisma.UserScalarFieldEnum = { id: 'id', - name: 'name', + firstname: 'firstname', + lastname: 'lastname', email: 'email', + password: 'password', emailVerified: 'emailVerified', image: 'image', createdAt: 'createdAt', diff --git a/packages/database/package.json b/packages/database/package.json index 44ffad4e..9d9d34ae 100644 --- a/packages/database/package.json +++ b/packages/database/package.json @@ -9,7 +9,7 @@ "db:deploy": "npx prisma migrate deploy" }, "exports": { - ".": "./src/index.ts" + ".": "./index.ts" }, "author": "", "license": "ISC", diff --git a/packages/database/prisma/schema.prisma b/packages/database/prisma/schema.prisma index 803e5dda..87c160ac 100644 --- a/packages/database/prisma/schema.prisma +++ b/packages/database/prisma/schema.prisma @@ -46,9 +46,11 @@ model Session { } model User { - id Int @id @default(autoincrement()) - name String? - email String? @unique + id String @id @default(uuid()) + firstname String + lastname String + email String @unique + password String emailVerified DateTime? @map(name: "email_verified") image String? createdAt DateTime @default(now()) @map(name: "created_at") diff --git a/packages/eslint-config/base.js b/packages/eslint-config/base.js index 31f5f43d..8c230549 100644 --- a/packages/eslint-config/base.js +++ b/packages/eslint-config/base.js @@ -1,8 +1,8 @@ -import js from "@eslint/js"; -import eslintConfigPrettier from "eslint-config-prettier"; -import turboPlugin from "eslint-plugin-turbo"; -import tseslint from "typescript-eslint"; -import onlyWarn from "eslint-plugin-only-warn"; +import js from '@eslint/js'; +import eslintConfigPrettier from 'eslint-config-prettier'; +import turboPlugin from 'eslint-plugin-turbo'; +import tseslint from 'typescript-eslint'; +import onlyWarn from 'eslint-plugin-only-warn'; /** * A shared ESLint configuration for the repository. @@ -18,7 +18,7 @@ export const config = [ turbo: turboPlugin, }, rules: { - "turbo/no-undeclared-env-vars": "warn", + 'turbo/no-undeclared-env-vars': ['error', { allowList: true }], }, }, { @@ -27,6 +27,6 @@ export const config = [ }, }, { - ignores: ["dist/**"], + ignores: ['dist/**'], }, ]; diff --git a/turbo.json b/turbo.json index f09da020..778c5e25 100644 --- a/turbo.json +++ b/turbo.json @@ -1,9 +1,19 @@ { "$schema": "https://turbo.build/schema.json", + "globalDependencies": ["**/.env.*local"], + "globalEnv": ["EMAIL_SERVER", "EMAIL_FROM", "SECRET"], "ui": "tui", "tasks": { + "db:generate": { + "cache": false, + "persistent": true + }, + "db:migrate": { + "cache": false, + "persistent": true + }, "build": { - "dependsOn": ["^build"], + "dependsOn": ["^build", "db:generate", "db:migrate"], "inputs": ["$TURBO_DEFAULT$", ".env*"], "outputs": [".next/**", "!.next/cache/**"] }, @@ -14,19 +24,10 @@ "dependsOn": ["^check-types"] }, "dev": { + "dependsOn": ["^db:generate"], + "cache": false, "persistent": true - }, - "db:generate": { - "cache": false, - "persistent": true - }, - "db:migrate": { - "cache": false, - "persistent": true - }, - "db:deploy": { - "cache": false } } }