summaryrefslogtreecommitdiff
path: root/lib/rfq-last/validations.ts
diff options
context:
space:
mode:
authordujinkim <dujin.kim@dtsolution.co.kr>2025-09-05 11:44:32 +0000
committerdujinkim <dujin.kim@dtsolution.co.kr>2025-09-05 11:44:32 +0000
commit50adedf48ee4674ebe00f1ee72d93485183cdc51 (patch)
tree18053ab04d94c750028eee5d5d2f16ba4f38f50e /lib/rfq-last/validations.ts
parent66d64b482f2b6b52b0dd396ef998f27d491c70dd (diff)
(대표님, 최겸, 임수민) EDP 입력 진행률, 견적목록관리, EDP excel import 오류수정, GTC-Contract
Diffstat (limited to 'lib/rfq-last/validations.ts')
-rw-r--r--lib/rfq-last/validations.ts90
1 files changed, 14 insertions, 76 deletions
diff --git a/lib/rfq-last/validations.ts b/lib/rfq-last/validations.ts
index 34110141..5615db7a 100644
--- a/lib/rfq-last/validations.ts
+++ b/lib/rfq-last/validations.ts
@@ -71,87 +71,25 @@ export const searchParamsRfqTabCache = createSearchParamsCache({
tab: parseAsStringEnum(['design', 'purchase']).withDefault('design'),
})
-// 설계 탭 전용 파라미터
-export const searchParamsRfqDesignCache = createSearchParamsCache({
- design_page: parseAsInteger.withDefault(1),
- design_perPage: parseAsInteger.withDefault(10),
- design_sort: getSortingStateParser<RfqLastAttachments>().withDefault([
- { id: "createdAt", desc: true },
- ]),
- design_search: parseAsString.withDefault(""),
- design_fileType: parseAsArrayOf(z.string()).withDefault([]),
- design_filters: getFiltersStateParser().withDefault([]),
- design_joinOperator: parseAsStringEnum(["and", "or"]).withDefault("and"),
-})
-// 구매 탭 전용 파라미터
-export const searchParamsRfqPurchaseCache = createSearchParamsCache({
- purchase_page: parseAsInteger.withDefault(1),
- purchase_perPage: parseAsInteger.withDefault(10),
- purchase_sort: getSortingStateParser<RfqLastAttachments>().withDefault([
- { id: "createdAt", desc: true },
- ]),
- purchase_search: parseAsString.withDefault(""),
- purchase_fileType: parseAsArrayOf(z.string()).withDefault([]),
- purchase_filters: getFiltersStateParser().withDefault([]),
- purchase_joinOperator: parseAsStringEnum(["and", "or"]).withDefault("and"),
-})
// 통합 파라미터 캐시 (모든 파라미터를 한 번에 파싱)
-export const searchParamsRfqAttachmentsCache = createSearchParamsCache({
- // 공통
- tab: parseAsStringEnum(['design', 'purchase']).withDefault('design'),
+export const searchParamsRfqAttachmentsCache =createSearchParamsCache({
flags: parseAsArrayOf(z.enum(["advancedTable", "floatingBar"])).withDefault([]),
-
- // 설계 탭 파라미터
- design_page: parseAsInteger.withDefault(1),
- design_perPage: parseAsInteger.withDefault(10),
- design_sort: getSortingStateParser<RfqLastAttachments>().withDefault([
+ page: parseAsInteger.withDefault(1),
+ perPage: parseAsInteger.withDefault(10),
+ sort: getSortingStateParser<RfqLastAttachments>().withDefault([
{ id: "createdAt", desc: true },
]),
- design_search: parseAsString.withDefault(""),
- design_fileType: parseAsArrayOf(z.string()).withDefault([]),
- design_filters: getFiltersStateParser().withDefault([]),
- design_joinOperator: parseAsStringEnum(["and", "or"]).withDefault("and"),
-
- // 구매 탭 파라미터
- purchase_page: parseAsInteger.withDefault(1),
- purchase_perPage: parseAsInteger.withDefault(10),
- purchase_sort: getSortingStateParser<RfqLastAttachments>().withDefault([
- { id: "createdAt", desc: true },
- ]),
- purchase_search: parseAsString.withDefault(""),
- purchase_fileType: parseAsArrayOf(z.string()).withDefault([]),
- purchase_filters: getFiltersStateParser().withDefault([]),
- purchase_joinOperator: parseAsStringEnum(["and", "or"]).withDefault("and"),
-})
+ filters: getFiltersStateParser().withDefault([]),
+ joinOperator: parseAsStringEnum(["and", "or"]).withDefault("and"),
+ search: parseAsString.withDefault(""),
-// 타입 정의
-export type GetRfqLastAttachmentsSchema = {
- page: number
- perPage: number
- sort: Array<{ id: string; desc: boolean }>
- search: string
- fileType: string[]
- filters: any[]
- joinOperator: "and" | "or"
- attachmentType?: string[]
-}
-// 헬퍼 함수: prefix가 붙은 파라미터를 일반 파라미터로 변환
-export function extractTabParams(
- allParams: Awaited<ReturnType<typeof searchParamsRfqAttachmentsCache.parse>>,
- tabPrefix: 'design' | 'purchase'
-): GetRfqLastAttachmentsSchema {
- const prefix = `${tabPrefix}_`
-
- return {
- page: allParams[`${prefix}page` as keyof typeof allParams] as number,
- perPage: allParams[`${prefix}perPage` as keyof typeof allParams] as number,
- sort: allParams[`${prefix}sort` as keyof typeof allParams] as any,
- search: allParams[`${prefix}search` as keyof typeof allParams] as string,
- fileType: allParams[`${prefix}fileType` as keyof typeof allParams] as string[],
- filters: allParams[`${prefix}filters` as keyof typeof allParams] as any[],
- joinOperator: allParams[`${prefix}joinOperator` as keyof typeof allParams] as "and" | "or",
- }
-} \ No newline at end of file
+});
+
+
+// 타입 정의
+export type GetRfqLastAttachmentsSchema =Awaited<
+ReturnType<typeof searchParamsRfqAttachmentsCache.parse>
+>;