From 7548e2ad6948f1c6aa102fcac408bc6c9c0f9796 Mon Sep 17 00:00:00 2001 From: dujinkim Date: Wed, 27 Aug 2025 12:06:26 +0000 Subject: (대표님, 최겸) 기본계약, 입찰, 파일라우트, 계약서명라우트, 인포메이션, 메뉴설정, PQ(메일템플릿 관련) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/basic-contract/validations.ts | 42 +++++++++++++++++++++++++++++++++++++-- 1 file changed, 40 insertions(+), 2 deletions(-) (limited to 'lib/basic-contract/validations.ts') diff --git a/lib/basic-contract/validations.ts b/lib/basic-contract/validations.ts index bb9e3b8d..53738dfc 100644 --- a/lib/basic-contract/validations.ts +++ b/lib/basic-contract/validations.ts @@ -7,7 +7,7 @@ import { createSearchParamsCache, } from "nuqs/server" import { getFiltersStateParser, getSortingStateParser } from "@/lib/parsers" -import { BasicContractTemplate, BasicContractView } from "@/db/schema"; +import { BasicContractTemplate, BasicContractTemplateStatsView, BasicContractView } from "@/db/schema"; export const basicContractTemplateSchema = z.object({ templateName: z.string().min(1, "템플릿 이름은 필수입니다."), @@ -93,6 +93,25 @@ export type DeleteBasicContractTemplateSchema = z.infer().withDefault([ + { id: "lastActivityDate", desc: true }, + ]), + + // 고급 필터 + filters: getFiltersStateParser().withDefault([]), + joinOperator: parseAsStringEnum(["and", "or"]).withDefault("and"), + search: parseAsString.withDefault(""), + +}); + +export type GetBasciContractsSchema = Awaited>; + + + +export const searchParamsVendorCache = createSearchParamsCache({ flags: parseAsArrayOf(z.enum(["advancedTable", "floatingBar"])).withDefault([]), page: parseAsInteger.withDefault(1), perPage: parseAsInteger.withDefault(10), @@ -107,4 +126,23 @@ export const searchParamsCache = createSearchParamsCache({ }); -export type GetBasciContractsSchema = Awaited>; +export type GetBasciContractsVendorSchema = Awaited>; + + +export const searchParamsCacheByTemplateId = createSearchParamsCache({ + flags: parseAsArrayOf(z.enum(["advancedTable", "floatingBar"])).withDefault([]), + page: parseAsInteger.withDefault(1), + perPage: parseAsInteger.withDefault(10), + sort: getSortingStateParser().withDefault([ + { id: "createdAt", desc: true }, + ]), + + // 고급 필터 + filters: getFiltersStateParser().withDefault([]), + joinOperator: parseAsStringEnum(["and", "or"]).withDefault("and"), + search: parseAsString.withDefault(""), + +}); + +export type GetBasciContractsByIdSchema = Awaited>; + -- cgit v1.2.3