Files
TaxHacker/forms/settings.ts
2025-05-09 16:43:03 +02:00

39 lines
1.2 KiB
TypeScript

import { randomHexColor } from "@/lib/utils"
import { z } from "zod"
export const settingsFormSchema = z.object({
default_currency: z.string().max(5).optional(),
default_type: z.string().optional(),
default_category: z.string().optional(),
default_project: z.string().optional(),
openai_api_key: z.string().optional(),
prompt_analyse_new_file: z.string().optional(),
is_welcome_message_hidden: z.string().optional(),
})
export const currencyFormSchema = z.object({
code: z.string().max(5),
name: z.string().max(32),
})
export const projectFormSchema = z.object({
name: z.string().max(128),
llm_prompt: z.string().max(512).nullable().optional(),
color: z.string().max(7).default(randomHexColor()).nullable().optional(),
})
export const categoryFormSchema = z.object({
name: z.string().max(128),
llm_prompt: z.string().max(512).nullable().optional(),
color: z.string().max(7).default(randomHexColor()).nullable().optional(),
})
export const fieldFormSchema = z.object({
name: z.string().max(128),
type: z.string().max(128).default("string"),
llm_prompt: z.string().max(512).nullable().optional(),
isVisibleInList: z.boolean().optional(),
isVisibleInAnalysis: z.boolean().optional(),
isRequired: z.boolean().optional(),
})