diff options
Diffstat (limited to 'src/lib')
| -rw-r--r-- | src/lib/env.ts | 9 | ||||
| -rw-r--r-- | src/lib/utils.ts | 5 |
2 files changed, 12 insertions, 2 deletions
diff --git a/src/lib/env.ts b/src/lib/env.ts index f1d59db..927e756 100644 --- a/src/lib/env.ts +++ b/src/lib/env.ts @@ -19,6 +19,7 @@ const envSchema = z S3_UPLOAD_REGION: z.string().optional(), S3_UPLOAD_ENDPOINT: z.string().optional(), NEXT_PUBLIC_ENABLE_RECEIPT_EXTRACT: z.coerce.boolean().default(false), + NEXT_PUBLIC_ENABLE_CATEGORY_EXTRACT: z.coerce.boolean().default(false), OPENAI_API_KEY: z.string().optional(), }) .superRefine((env, ctx) => { @@ -36,11 +37,15 @@ const envSchema = z 'If NEXT_PUBLIC_ENABLE_EXPENSE_DOCUMENTS is specified, then S3_* must be specified too', }) } - if (env.NEXT_PUBLIC_ENABLE_RECEIPT_EXTRACT && !env.OPENAI_API_KEY) { + if ( + (env.NEXT_PUBLIC_ENABLE_RECEIPT_EXTRACT || + env.NEXT_PUBLIC_ENABLE_CATEGORY_EXTRACT) && + !env.OPENAI_API_KEY + ) { ctx.addIssue({ code: ZodIssueCode.custom, message: - 'If NEXT_PUBLIC_ENABLE_RECEIPT_EXTRACT is specified, then OPENAI_API_KEY must be specified too', + 'If NEXT_PUBLIC_ENABLE_RECEIPT_EXTRACT or NEXT_PUBLIC_ENABLE_CATEGORY_EXTRACT is specified, then OPENAI_API_KEY must be specified too', }) } }) diff --git a/src/lib/utils.ts b/src/lib/utils.ts index d0b32e2..39477d1 100644 --- a/src/lib/utils.ts +++ b/src/lib/utils.ts @@ -1,3 +1,4 @@ +import { Category } from '@prisma/client' import { clsx, type ClassValue } from 'clsx' import { twMerge } from 'tailwind-merge' @@ -15,3 +16,7 @@ export function formatExpenseDate(date: Date) { timeZone: 'UTC', }) } + +export function formatCategoryForAIPrompt(category: Category) { + return `"${category.grouping}/${category.name}" (ID: ${category.id})` +} |
