From 58277ba819fb5a3be5fdc3d69c7c2a2b7d2013e3 Mon Sep 17 00:00:00 2001
From: PxlLoewe <72106766+PxlLoewe@users.noreply.github.com>
Date: Sat, 18 Jan 2025 23:19:16 +0100
Subject: [PATCH] implemented inital nextAuth logic
---
apps/hub/api/auth/[...nextauth].ts | 3 -
apps/hub/app/(auth)/login/page.tsx | 13 ++
.../app/_components/AuthSessionProvider.tsx | 12 +
apps/hub/app/api/auth/[...nextauth]/auth.ts | 53 +++++
apps/hub/app/api/auth/[...nextauth]/route.ts | 6 +
apps/hub/app/layout.tsx | 36 +--
apps/hub/app/page.tsx | 6 +
apps/hub/lib/auth.ts | 15 --
apps/hub/package.json | 2 +
package-lock.json | 13 ++
packages/database/generated/client/edge.js | 12 +-
.../generated/client/index-browser.js | 4 +-
packages/database/generated/client/index.d.ts | 217 ++++++++++--------
packages/database/generated/client/index.js | 12 +-
.../database/generated/client/package.json | 2 +-
.../database/generated/client/schema.prisma | 8 +-
packages/database/generated/client/wasm.js | 4 +-
packages/database/package.json | 2 +-
packages/database/prisma/schema.prisma | 8 +-
packages/eslint-config/base.js | 14 +-
turbo.json | 25 +-
21 files changed, 295 insertions(+), 172 deletions(-)
delete mode 100644 apps/hub/api/auth/[...nextauth].ts
create mode 100644 apps/hub/app/(auth)/login/page.tsx
create mode 100644 apps/hub/app/_components/AuthSessionProvider.tsx
create mode 100644 apps/hub/app/api/auth/[...nextauth]/auth.ts
create mode 100644 apps/hub/app/api/auth/[...nextauth]/route.ts
delete mode 100644 apps/hub/lib/auth.ts
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
}
}
}