summaryrefslogtreecommitdiff
path: root/lib/items-tech/validations.ts
diff options
context:
space:
mode:
Diffstat (limited to 'lib/items-tech/validations.ts')
-rw-r--r--lib/items-tech/validations.ts57
1 files changed, 47 insertions, 10 deletions
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<Item>().withDefault([
+ sort: getSortingStateParser<ItemShipbuilding>().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<ItemOffshoreTop>().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<ItemOffshoreHull>().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<ReturnType<typeof searchParamsCache.parse>>
+export type GetShipbuildingSchema = Awaited<ReturnType<typeof shipbuildingSearchParamsCache.parse>>
+export type GetOffshoreTopSchema = Awaited<ReturnType<typeof offshoreTopSearchParamsCache.parse>>
+export type GetOffshoreHullSchema = Awaited<ReturnType<typeof offshoreHullSearchParamsCache.parse>>
+
export type CreateItemSchema = z.infer<typeof createItemSchema>
export type UpdateItemSchema = z.infer<typeof updateItemSchema>
export type UpdateShipbuildingItemSchema = z.infer<typeof updateShipbuildingItemSchema>