diff --git a/.gitignore b/.gitignore index 418938e..40a2997 100644 --- a/.gitignore +++ b/.gitignore @@ -47,6 +47,7 @@ yarn-error.log* next-env.d.ts # databases +prisma/client pgdata *.db *.sqlite diff --git a/ai/attachments.ts b/ai/attachments.ts index ae8b260..d04dc9e 100644 --- a/ai/attachments.ts +++ b/ai/attachments.ts @@ -1,6 +1,6 @@ import { fileExists, fullPathForFile } from "@/lib/files" import { generateFilePreviews } from "@/lib/previews/generate" -import { File, User } from "@prisma/client" +import { File, User } from "@/prisma/client" import fs from "fs/promises" const MAX_PAGES_TO_ANALYZE = 4 diff --git a/ai/prompt.ts b/ai/prompt.ts index e326fa1..8b16cb8 100644 --- a/ai/prompt.ts +++ b/ai/prompt.ts @@ -1,4 +1,4 @@ -import { Category, Field, Project } from "@prisma/client" +import { Category, Field, Project } from "@/prisma/client" export function buildLLMPrompt( promptTemplate: string, diff --git a/ai/schema.ts b/ai/schema.ts index 77ab074..74e6009 100644 --- a/ai/schema.ts +++ b/ai/schema.ts @@ -1,13 +1,16 @@ -import { Field } from "@prisma/client" +import { Field } from "@/prisma/client" export const fieldsToJsonSchema = (fields: Field[]) => { const fieldsWithPrompt = fields.filter((field) => field.llm_prompt) const schema = { type: "object", - properties: fieldsWithPrompt.reduce((acc, field) => { - acc[field.code] = { type: field.type, description: field.llm_prompt || "" } - return acc - }, {} as Record), + properties: fieldsWithPrompt.reduce( + (acc, field) => { + acc[field.code] = { type: field.type, description: field.llm_prompt || "" } + return acc + }, + {} as Record + ), required: fieldsWithPrompt.map((field) => field.code), additionalProperties: false, } diff --git a/app/(app)/import/csv/actions.tsx b/app/(app)/import/csv/actions.tsx index 48d1493..e9fb4c0 100644 --- a/app/(app)/import/csv/actions.tsx +++ b/app/(app)/import/csv/actions.tsx @@ -4,8 +4,8 @@ import { ActionState } from "@/lib/actions" import { getCurrentUser } from "@/lib/auth" import { EXPORT_AND_IMPORT_FIELD_MAP } from "@/models/export_and_import" import { createTransaction } from "@/models/transactions" +import { Transaction } from "@/prisma/client" import { parse } from "@fast-csv/parse" -import { Transaction } from "@prisma/client" import { revalidatePath } from "next/cache" export async function parseCSVAction( diff --git a/app/(app)/settings/actions.ts b/app/(app)/settings/actions.ts index f65ebdf..e1377c2 100644 --- a/app/(app)/settings/actions.ts +++ b/app/(app)/settings/actions.ts @@ -17,7 +17,7 @@ import { createField, deleteField, updateField } from "@/models/fields" import { createProject, deleteProject, updateProject } from "@/models/projects" import { SettingsMap, updateSettings } from "@/models/settings" import { updateUser } from "@/models/users" -import { Prisma, User } from "@prisma/client" +import { Prisma, User } from "@/prisma/client" import { revalidatePath } from "next/cache" import { redirect } from "next/navigation" diff --git a/app/(app)/settings/categories/page.tsx b/app/(app)/settings/categories/page.tsx index 0a6555d..dd0e298 100644 --- a/app/(app)/settings/categories/page.tsx +++ b/app/(app)/settings/categories/page.tsx @@ -3,7 +3,7 @@ import { CrudTable } from "@/components/settings/crud" import { getCurrentUser } from "@/lib/auth" import { randomHexColor } from "@/lib/utils" import { getCategories } from "@/models/categories" -import { Prisma } from "@prisma/client" +import { Prisma } from "@/prisma/client" export default async function CategoriesSettingsPage() { const user = await getCurrentUser() diff --git a/app/(app)/settings/danger/actions.ts b/app/(app)/settings/danger/actions.ts index 62fd5f5..9c19fef 100644 --- a/app/(app)/settings/danger/actions.ts +++ b/app/(app)/settings/danger/actions.ts @@ -2,7 +2,7 @@ import { prisma } from "@/lib/db" import { DEFAULT_CATEGORIES, DEFAULT_CURRENCIES, DEFAULT_FIELDS, DEFAULT_SETTINGS } from "@/models/defaults" -import { User } from "@prisma/client" +import { User } from "@/prisma/client" import { redirect } from "next/navigation" export async function resetLLMSettings(user: User) { diff --git a/app/(app)/settings/fields/page.tsx b/app/(app)/settings/fields/page.tsx index 02d363f..70dc27f 100644 --- a/app/(app)/settings/fields/page.tsx +++ b/app/(app)/settings/fields/page.tsx @@ -2,7 +2,7 @@ import { addFieldAction, deleteFieldAction, editFieldAction } from "@/app/(app)/ import { CrudTable } from "@/components/settings/crud" import { getCurrentUser } from "@/lib/auth" import { getFields } from "@/models/fields" -import { Prisma } from "@prisma/client" +import { Prisma } from "@/prisma/client" export default async function FieldsSettingsPage() { const user = await getCurrentUser() diff --git a/app/(app)/settings/projects/page.tsx b/app/(app)/settings/projects/page.tsx index a996b2d..8710c3b 100644 --- a/app/(app)/settings/projects/page.tsx +++ b/app/(app)/settings/projects/page.tsx @@ -3,7 +3,7 @@ import { CrudTable } from "@/components/settings/crud" import { getCurrentUser } from "@/lib/auth" import { randomHexColor } from "@/lib/utils" import { getProjects } from "@/models/projects" -import { Prisma } from "@prisma/client" +import { Prisma } from "@/prisma/client" export default async function ProjectsSettingsPage() { const user = await getCurrentUser() diff --git a/app/(app)/transactions/actions.ts b/app/(app)/transactions/actions.ts index da1ae9b..9c344ae 100644 --- a/app/(app)/transactions/actions.ts +++ b/app/(app)/transactions/actions.ts @@ -20,7 +20,7 @@ import { updateTransactionFiles, } from "@/models/transactions" import { updateUser } from "@/models/users" -import { Transaction } from "@prisma/client" +import { Transaction } from "@/prisma/client" import { randomUUID } from "crypto" import { mkdir, writeFile } from "fs/promises" import { revalidatePath } from "next/cache" diff --git a/app/(app)/unsorted/actions.ts b/app/(app)/unsorted/actions.ts index 30d0615..6e6302f 100644 --- a/app/(app)/unsorted/actions.ts +++ b/app/(app)/unsorted/actions.ts @@ -13,7 +13,7 @@ import { DEFAULT_PROMPT_ANALYSE_NEW_FILE } from "@/models/defaults" import { deleteFile, getFileById, updateFile } from "@/models/files" import { createTransaction, updateTransactionFiles } from "@/models/transactions" import { updateUser } from "@/models/users" -import { Category, Field, File, Project, Transaction } from "@prisma/client" +import { Category, Field, File, Project, Transaction } from "@/prisma/client" import { mkdir, rename } from "fs/promises" import { revalidatePath } from "next/cache" import path from "path" diff --git a/app/(auth)/self-hosted/page.tsx b/app/(auth)/self-hosted/page.tsx index 5527565..2b070d9 100644 --- a/app/(auth)/self-hosted/page.tsx +++ b/app/(auth)/self-hosted/page.tsx @@ -77,5 +77,3 @@ export default async function SelfHostedWelcomePage() { ) } - -export const dynamic = "force-dynamic" diff --git a/components/dashboard/projects-widget.tsx b/components/dashboard/projects-widget.tsx index 6a9e4b7..5978696 100644 --- a/components/dashboard/projects-widget.tsx +++ b/components/dashboard/projects-widget.tsx @@ -2,7 +2,7 @@ import { Badge } from "@/components/ui/badge" import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card" import { formatCurrency } from "@/lib/utils" import { ProjectStats } from "@/models/stats" -import { Project } from "@prisma/client" +import { Project } from "@/prisma/client" import { Plus } from "lucide-react" import Link from "next/link" diff --git a/components/dashboard/unsorted-widget.tsx b/components/dashboard/unsorted-widget.tsx index a7e5c3c..9237d5c 100644 --- a/components/dashboard/unsorted-widget.tsx +++ b/components/dashboard/unsorted-widget.tsx @@ -1,7 +1,7 @@ "use client" import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card" -import { File } from "@prisma/client" +import { File } from "@/prisma/client" import { Cake, FilePlus } from "lucide-react" import Link from "next/link" diff --git a/components/export/transactions.tsx b/components/export/transactions.tsx index fdb1c6b..1b25ac9 100644 --- a/components/export/transactions.tsx +++ b/components/export/transactions.tsx @@ -15,7 +15,7 @@ import { } from "@/components/ui/dialog" import { Separator } from "@/components/ui/separator" import { useTransactionFilters } from "@/hooks/use-transaction-filters" -import { Category, Field, Project } from "@prisma/client" +import { Category, Field, Project } from "@/prisma/client" import { formatDate } from "date-fns" import { useRouter } from "next/navigation" import { useState } from "react" diff --git a/components/files/preview.tsx b/components/files/preview.tsx index d387ee0..1669e05 100644 --- a/components/files/preview.tsx +++ b/components/files/preview.tsx @@ -1,7 +1,7 @@ "use client" import { formatBytes } from "@/lib/utils" -import { File } from "@prisma/client" +import { File } from "@/prisma/client" import Image from "next/image" import Link from "next/link" import { useState } from "react" diff --git a/components/forms/select-category.tsx b/components/forms/select-category.tsx index 1d0a37c..5d48bde 100644 --- a/components/forms/select-category.tsx +++ b/components/forms/select-category.tsx @@ -1,6 +1,6 @@ "use client" -import { Category } from "@prisma/client" +import { Category } from "@/prisma/client" import { SelectProps } from "@radix-ui/react-select" import { useMemo } from "react" import { FormSelect } from "./simple" diff --git a/components/forms/select-project.tsx b/components/forms/select-project.tsx index e578d99..a74b218 100644 --- a/components/forms/select-project.tsx +++ b/components/forms/select-project.tsx @@ -1,4 +1,4 @@ -import { Project } from "@prisma/client" +import { Project } from "@/prisma/client" import { SelectProps } from "@radix-ui/react-select" import { FormSelect } from "./simple" diff --git a/components/import/csv.tsx b/components/import/csv.tsx index 907d381..a839764 100644 --- a/components/import/csv.tsx +++ b/components/import/csv.tsx @@ -3,7 +3,7 @@ import { parseCSVAction, saveTransactionsAction } from "@/app/(app)/import/csv/actions" import { FormError } from "@/components/forms/error" import { Button } from "@/components/ui/button" -import { Field } from "@prisma/client" +import { Field } from "@/prisma/client" import { Loader2, Play, Upload } from "lucide-react" import { useRouter } from "next/navigation" import { startTransition, useActionState, useEffect, useState } from "react" diff --git a/components/settings/global-settings-form.tsx b/components/settings/global-settings-form.tsx index 9fa360e..75ea4a6 100644 --- a/components/settings/global-settings-form.tsx +++ b/components/settings/global-settings-form.tsx @@ -6,7 +6,7 @@ import { FormSelectCategory } from "@/components/forms/select-category" import { FormSelectCurrency } from "@/components/forms/select-currency" import { FormSelectType } from "@/components/forms/select-type" import { Button } from "@/components/ui/button" -import { Category, Currency } from "@prisma/client" +import { Category, Currency } from "@/prisma/client" import { CircleCheckBig } from "lucide-react" import { useActionState } from "react" diff --git a/components/settings/llm-settings-form.tsx b/components/settings/llm-settings-form.tsx index 466b2ea..da48707 100644 --- a/components/settings/llm-settings-form.tsx +++ b/components/settings/llm-settings-form.tsx @@ -6,7 +6,7 @@ import { FormError } from "@/components/forms/error" import { FormInput, FormTextarea } from "@/components/forms/simple" import { Button } from "@/components/ui/button" import { Card, CardTitle } from "@/components/ui/card" -import { Field } from "@prisma/client" +import { Field } from "@/prisma/client" import { CircleCheckBig, Edit } from "lucide-react" import Link from "next/link" import { useActionState } from "react" diff --git a/components/settings/profile-settings-form.tsx b/components/settings/profile-settings-form.tsx index 083f48c..cc72a2d 100644 --- a/components/settings/profile-settings-form.tsx +++ b/components/settings/profile-settings-form.tsx @@ -4,7 +4,7 @@ import { saveProfileAction } from "@/app/(app)/settings/actions" import { FormError } from "@/components/forms/error" import { FormInput } from "@/components/forms/simple" import { Button } from "@/components/ui/button" -import { User } from "@prisma/client" +import { User } from "@/prisma/client" import { CircleCheckBig } from "lucide-react" import { useActionState } from "react" import { SubscriptionPlan } from "./subscription-plan" diff --git a/components/settings/subscription-plan.tsx b/components/settings/subscription-plan.tsx index 0d7d464..e46b50e 100644 --- a/components/settings/subscription-plan.tsx +++ b/components/settings/subscription-plan.tsx @@ -1,4 +1,4 @@ -import { User } from "@prisma/client" +import { User } from "@/prisma/client" import { PricingCard } from "@/components/auth/pricing-card" import { Button } from "@/components/ui/button" diff --git a/components/transactions/create.tsx b/components/transactions/create.tsx index 0b5a8ce..058d8b0 100644 --- a/components/transactions/create.tsx +++ b/components/transactions/create.tsx @@ -8,7 +8,7 @@ import { FormSelectProject } from "@/components/forms/select-project" import { FormSelectType } from "@/components/forms/select-type" import { FormInput, FormTextarea } from "@/components/forms/simple" import { Button } from "@/components/ui/button" -import { Category, Currency, Project } from "@prisma/client" +import { Category, Currency, Project } from "@/prisma/client" import { format } from "date-fns" import { Import, Loader2 } from "lucide-react" import Link from "next/link" diff --git a/components/transactions/edit.tsx b/components/transactions/edit.tsx index 1502fd8..57710d6 100644 --- a/components/transactions/edit.tsx +++ b/components/transactions/edit.tsx @@ -8,7 +8,7 @@ import { FormSelectProject } from "@/components/forms/select-project" import { FormSelectType } from "@/components/forms/select-type" import { FormInput, FormTextarea } from "@/components/forms/simple" import { Button } from "@/components/ui/button" -import { Category, Currency, Field, Project, Transaction } from "@prisma/client" +import { Category, Currency, Field, Project, Transaction } from "@/prisma/client" import { format } from "date-fns" import { Loader2 } from "lucide-react" import { useRouter } from "next/navigation" diff --git a/components/transactions/fields-selector.tsx b/components/transactions/fields-selector.tsx index a281ed2..97e12ef 100644 --- a/components/transactions/fields-selector.tsx +++ b/components/transactions/fields-selector.tsx @@ -10,7 +10,7 @@ import { DropdownMenuSeparator, DropdownMenuTrigger, } from "@/components/ui/dropdown-menu" -import { Field } from "@prisma/client" +import { Field } from "@/prisma/client" import { ColumnsIcon } from "lucide-react" import { useRouter } from "next/navigation" import { useState } from "react" diff --git a/components/transactions/filters.tsx b/components/transactions/filters.tsx index 3d5d01a..a4ea6e6 100644 --- a/components/transactions/filters.tsx +++ b/components/transactions/filters.tsx @@ -7,7 +7,7 @@ import { Input } from "@/components/ui/input" import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "@/components/ui/select" import { isFiltered, useTransactionFilters } from "@/hooks/use-transaction-filters" import { TransactionFilters } from "@/models/transactions" -import { Category, Field, Project } from "@prisma/client" +import { Category, Field, Project } from "@/prisma/client" import { X } from "lucide-react" export function TransactionSearchAndFilters({ diff --git a/components/transactions/list.tsx b/components/transactions/list.tsx index 8c393c2..da29495 100644 --- a/components/transactions/list.tsx +++ b/components/transactions/list.tsx @@ -6,7 +6,7 @@ import { Checkbox } from "@/components/ui/checkbox" import { Table, TableBody, TableCell, TableFooter, TableHead, TableHeader, TableRow } from "@/components/ui/table" import { calcTotalPerCurrency } from "@/lib/stats" import { cn, formatCurrency } from "@/lib/utils" -import { Category, Field, Project, Transaction } from "@prisma/client" +import { Category, Field, Project, Transaction } from "@/prisma/client" import { formatDate } from "date-fns" import { ArrowDownIcon, ArrowUpIcon, File } from "lucide-react" import { useRouter, useSearchParams } from "next/navigation" diff --git a/components/transactions/transaction-files.tsx b/components/transactions/transaction-files.tsx index 6ad52b9..296a855 100644 --- a/components/transactions/transaction-files.tsx +++ b/components/transactions/transaction-files.tsx @@ -5,7 +5,7 @@ import { FilePreview } from "@/components/files/preview" import { Button } from "@/components/ui/button" import { Card } from "@/components/ui/card" import config from "@/lib/config" -import { File, Transaction } from "@prisma/client" +import { File, Transaction } from "@/prisma/client" import { Loader2, Upload, X } from "lucide-react" import { useState } from "react" diff --git a/components/unsorted/analyze-form.tsx b/components/unsorted/analyze-form.tsx index 5d265e3..201b07b 100644 --- a/components/unsorted/analyze-form.tsx +++ b/components/unsorted/analyze-form.tsx @@ -10,7 +10,7 @@ import { FormSelectProject } from "@/components/forms/select-project" import { FormSelectType } from "@/components/forms/select-type" import { FormInput, FormTextarea } from "@/components/forms/simple" import { Button } from "@/components/ui/button" -import { Category, Currency, Field, File, Project } from "@prisma/client" +import { Category, Currency, Field, File, Project } from "@/prisma/client" import { format } from "date-fns" import { Brain, Loader2 } from "lucide-react" import { startTransition, useActionState, useMemo, useState } from "react" diff --git a/lib/auth.ts b/lib/auth.ts index 61ad109..c1ff8ce 100644 --- a/lib/auth.ts +++ b/lib/auth.ts @@ -1,6 +1,6 @@ import config from "@/lib/config" import { getSelfHostedUser, getUserByEmail, getUserById, SELF_HOSTED_USER } from "@/models/users" -import { User } from "@prisma/client" +import { User } from "@/prisma/client" import { betterAuth } from "better-auth" import { prismaAdapter } from "better-auth/adapters/prisma" import { APIError } from "better-auth/api" diff --git a/lib/db.ts b/lib/db.ts index 1c66f91..a4b83f2 100644 --- a/lib/db.ts +++ b/lib/db.ts @@ -1,4 +1,4 @@ -import { PrismaClient } from "@prisma/client" +import { PrismaClient } from "@/prisma/client" const globalForPrisma = globalThis as unknown as { prisma: PrismaClient | undefined diff --git a/lib/files.ts b/lib/files.ts index 26ee831..adf0932 100644 --- a/lib/files.ts +++ b/lib/files.ts @@ -1,4 +1,4 @@ -import { File, Transaction, User } from "@prisma/client" +import { File, Transaction, User } from "@/prisma/client" import { access, constants, readdir, stat } from "fs/promises" import path from "path" import config from "./config" diff --git a/lib/previews/generate.ts b/lib/previews/generate.ts index 3e61a09..0a77c80 100644 --- a/lib/previews/generate.ts +++ b/lib/previews/generate.ts @@ -1,6 +1,6 @@ import { resizeImage } from "@/lib/previews/images" import { pdfToImages } from "@/lib/previews/pdf" -import { User } from "@prisma/client" +import { User } from "@/prisma/client" export async function generateFilePreviews( user: User, diff --git a/lib/previews/images.ts b/lib/previews/images.ts index 428340a..10cd14d 100644 --- a/lib/previews/images.ts +++ b/lib/previews/images.ts @@ -1,7 +1,7 @@ "use server" import { fileExists, getUserPreviewsDirectory } from "@/lib/files" -import { User } from "@prisma/client" +import { User } from "@/prisma/client" import fs from "fs/promises" import path from "path" import sharp from "sharp" diff --git a/lib/previews/pdf.ts b/lib/previews/pdf.ts index 96fdf10..3890b17 100644 --- a/lib/previews/pdf.ts +++ b/lib/previews/pdf.ts @@ -1,7 +1,7 @@ "use server" import { fileExists, getUserPreviewsDirectory } from "@/lib/files" -import { User } from "@prisma/client" +import { User } from "@/prisma/client" import fs from "fs/promises" import path from "path" import { fromPath } from "pdf2pic" diff --git a/lib/stats.ts b/lib/stats.ts index e2497be..fa0062b 100644 --- a/lib/stats.ts +++ b/lib/stats.ts @@ -1,14 +1,17 @@ -import { Transaction } from "@prisma/client" +import { Transaction } from "@/prisma/client" export function calcTotalPerCurrency(transactions: Transaction[]): Record { - return transactions.reduce((acc, transaction) => { - if (transaction.convertedCurrencyCode) { - acc[transaction.convertedCurrencyCode.toUpperCase()] = - (acc[transaction.convertedCurrencyCode.toUpperCase()] || 0) + (transaction.convertedTotal || 0) - } else if (transaction.currencyCode) { - acc[transaction.currencyCode.toUpperCase()] = - (acc[transaction.currencyCode.toUpperCase()] || 0) + (transaction.total || 0) - } - return acc - }, {} as Record) + return transactions.reduce( + (acc, transaction) => { + if (transaction.convertedCurrencyCode) { + acc[transaction.convertedCurrencyCode.toUpperCase()] = + (acc[transaction.convertedCurrencyCode.toUpperCase()] || 0) + (transaction.convertedTotal || 0) + } else if (transaction.currencyCode) { + acc[transaction.currencyCode.toUpperCase()] = + (acc[transaction.currencyCode.toUpperCase()] || 0) + (transaction.total || 0) + } + return acc + }, + {} as Record + ) } diff --git a/models/categories.ts b/models/categories.ts index d04297b..8bd0bcf 100644 --- a/models/categories.ts +++ b/models/categories.ts @@ -1,6 +1,6 @@ import { prisma } from "@/lib/db" import { codeFromName } from "@/lib/utils" -import { Prisma } from "@prisma/client" +import { Prisma } from "@/prisma/client" import { cache } from "react" export type CategoryData = { diff --git a/models/currencies.ts b/models/currencies.ts index b5d8fb7..b4d9136 100644 --- a/models/currencies.ts +++ b/models/currencies.ts @@ -1,5 +1,5 @@ import { prisma } from "@/lib/db" -import { Prisma } from "@prisma/client" +import { Prisma } from "@/prisma/client" import { cache } from "react" export const getCurrencies = cache(async (userId: string) => { diff --git a/models/fields.ts b/models/fields.ts index 94c6c06..70a6a64 100644 --- a/models/fields.ts +++ b/models/fields.ts @@ -1,6 +1,6 @@ import { prisma } from "@/lib/db" import { codeFromName } from "@/lib/utils" -import { Prisma } from "@prisma/client" +import { Prisma } from "@/prisma/client" import { cache } from "react" export type FieldData = { diff --git a/models/projects.ts b/models/projects.ts index bcfeadb..4435eb5 100644 --- a/models/projects.ts +++ b/models/projects.ts @@ -1,6 +1,6 @@ import { prisma } from "@/lib/db" import { codeFromName } from "@/lib/utils" -import { Prisma } from "@prisma/client" +import { Prisma } from "@/prisma/client" import { cache } from "react" export type ProjectData = { diff --git a/models/stats.ts b/models/stats.ts index d6b9a6a..7a42245 100644 --- a/models/stats.ts +++ b/models/stats.ts @@ -1,6 +1,6 @@ import { prisma } from "@/lib/db" import { calcTotalPerCurrency } from "@/lib/stats" -import { Prisma } from "@prisma/client" +import { Prisma } from "@/prisma/client" import { cache } from "react" import { TransactionFilters } from "./transactions" diff --git a/models/transactions.ts b/models/transactions.ts index 733ac67..6e2f72c 100644 --- a/models/transactions.ts +++ b/models/transactions.ts @@ -1,5 +1,5 @@ import { prisma } from "@/lib/db" -import { Field, Prisma, Transaction } from "@prisma/client" +import { Field, Prisma, Transaction } from "@/prisma/client" import { cache } from "react" import { getFields } from "./fields" import { deleteFile } from "./files" diff --git a/models/users.ts b/models/users.ts index a7e82d1..550c552 100644 --- a/models/users.ts +++ b/models/users.ts @@ -1,5 +1,5 @@ import { prisma } from "@/lib/db" -import { Prisma } from "@prisma/client" +import { Prisma } from "@/prisma/client" import { cache } from "react" export const SELF_HOSTED_USER = { diff --git a/package.json b/package.json index 632241f..4f2c1e9 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,7 @@ "scripts": { "dev": "next dev -p 7331 --turbopack", "build": "next build", - "start": "prisma migrate deploy && next start", + "start": "prisma generate && prisma migrate deploy && next start", "lint": "next lint" }, "dependencies": { diff --git a/prisma/schema.prisma b/prisma/schema.prisma index ba4c9b1..c0fbc23 100644 --- a/prisma/schema.prisma +++ b/prisma/schema.prisma @@ -3,6 +3,7 @@ generator client { provider = "prisma-client-js" + output = "client" } datasource db {