diff options
| author | dujinkim <dujin.kim@dtsolution.co.kr> | 2025-09-05 11:44:32 +0000 |
|---|---|---|
| committer | dujinkim <dujin.kim@dtsolution.co.kr> | 2025-09-05 11:44:32 +0000 |
| commit | 50adedf48ee4674ebe00f1ee72d93485183cdc51 (patch) | |
| tree | 18053ab04d94c750028eee5d5d2f16ba4f38f50e /lib/rfq-last/validations.ts | |
| parent | 66d64b482f2b6b52b0dd396ef998f27d491c70dd (diff) | |
(대표님, 최겸, 임수민) EDP 입력 진행률, 견적목록관리, EDP excel import 오류수정, GTC-Contract
Diffstat (limited to 'lib/rfq-last/validations.ts')
| -rw-r--r-- | lib/rfq-last/validations.ts | 90 |
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> +>; |
