From d59a5175210c18fcc675cde93865339abf37a406 Mon Sep 17 00:00:00 2001 From: dujinkim Date: Fri, 30 May 2025 01:54:09 +0000 Subject: (최겸) 기술영업 아이템리스트 filter, sort 적용 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/items-tech/validations.ts | 57 +++++++++++++++++++++++++++++++++++-------- 1 file changed, 47 insertions(+), 10 deletions(-) (limited to 'lib/items-tech/validations.ts') diff --git a/lib/items-tech/validations.ts b/lib/items-tech/validations.ts index 399193b2..09c7878b 100644 --- a/lib/items-tech/validations.ts +++ b/lib/items-tech/validations.ts @@ -8,25 +8,59 @@ import { import * as z from "zod" import { getFiltersStateParser, getSortingStateParser } from "@/lib/parsers" -import { Item } from "@/db/schema/items"; +import { ItemOffshoreTop, ItemOffshoreHull, ItemShipbuilding } from "@/db/schema/items"; -export const searchParamsCache = createSearchParamsCache({ - flags: parseAsArrayOf(z.enum(["advancedTable", "floatingBar"])).withDefault( - [] - ), +// 조선 아이템 검색 파라미터 캐시 +export const shipbuildingSearchParamsCache = createSearchParamsCache({ + flags: parseAsArrayOf(z.enum(["advancedTable", "floatingBar"])).withDefault([]), page: parseAsInteger.withDefault(1), perPage: parseAsInteger.withDefault(10), - sort: getSortingStateParser().withDefault([ + sort: getSortingStateParser().withDefault([ { id: "createdAt", desc: true }, ]), itemCode: parseAsString.withDefault(""), - itemName: parseAsString.withDefault(""), - description: parseAsString.withDefault(""), + workType: parseAsString.withDefault(""), + shipTypes: parseAsString.withDefault(""), + itemList: parseAsString.withDefault(""), + filters: getFiltersStateParser().withDefault([]), + joinOperator: parseAsStringEnum(["and", "or"]).withDefault("and"), + search: parseAsString.withDefault(""), + +}) + +// 해양 TOP 아이템 검색 파라미터 캐시 +export const offshoreTopSearchParamsCache = createSearchParamsCache({ + flags: parseAsArrayOf(z.enum(["advancedTable", "floatingBar"])).withDefault([]), + page: parseAsInteger.withDefault(1), + perPage: parseAsInteger.withDefault(10), + sort: getSortingStateParser().withDefault([ + { id: "createdAt", desc: true }, + ]), + itemCode: parseAsString.withDefault(""), + workType: parseAsString.withDefault(""), + itemList: parseAsString.withDefault(""), + subItemList: parseAsString.withDefault(""), + filters: getFiltersStateParser().withDefault([]), + joinOperator: parseAsStringEnum(["and", "or"]).withDefault("and"), + search: parseAsString.withDefault(""), +}) - // advanced filter +// 해양 HULL 아이템 검색 파라미터 캐시 +export const offshoreHullSearchParamsCache = createSearchParamsCache({ + flags: parseAsArrayOf(z.enum(["advancedTable", "floatingBar"])).withDefault([]), + page: parseAsInteger.withDefault(1), + perPage: parseAsInteger.withDefault(10), + sort: getSortingStateParser().withDefault([ + { id: "createdAt", desc: true }, + ]), + itemCode: parseAsString.withDefault(""), + workType: parseAsString.withDefault(""), + itemList: parseAsString.withDefault(""), + subItemList: parseAsString.withDefault(""), filters: getFiltersStateParser().withDefault([]), joinOperator: parseAsStringEnum(["and", "or"]).withDefault("and"), search: parseAsString.withDefault(""), + }) export const createItemSchema = z.object({ @@ -51,7 +85,10 @@ export const updateShipbuildingItemSchema = z.object({ itemList: z.string().optional(), }) -export type GetItemsSchema = Awaited> +export type GetShipbuildingSchema = Awaited> +export type GetOffshoreTopSchema = Awaited> +export type GetOffshoreHullSchema = Awaited> + export type CreateItemSchema = z.infer export type UpdateItemSchema = z.infer export type UpdateShipbuildingItemSchema = z.infer -- cgit v1.2.3