ERP-node/frontend/lib/queryKeys.ts

34 lines
1.2 KiB
TypeScript

/**
* React Query Key Factory
* 일관된 쿼리 키 관리를 위한 팩토리 함수들
*/
export const queryKeys = {
// 카테고리 관련 쿼리 키
categories: {
all: ["categories"] as const,
lists: () => [...queryKeys.categories.all, "list"] as const,
list: (filters?: { active?: boolean; search?: string }) => [...queryKeys.categories.lists(), filters] as const,
details: () => [...queryKeys.categories.all, "detail"] as const,
detail: (categoryCode: string) => [...queryKeys.categories.details(), categoryCode] as const,
},
// 코드 관련 쿼리 키
codes: {
all: ["codes"] as const,
lists: () => [...queryKeys.codes.all, "list"] as const,
list: (categoryCode: string, filters?: { active?: boolean; search?: string }) =>
[...queryKeys.codes.lists(), categoryCode, filters] as const,
details: () => [...queryKeys.codes.all, "detail"] as const,
detail: (categoryCode: string, codeValue: string) =>
[...queryKeys.codes.details(), categoryCode, codeValue] as const,
},
// 옵션 관련 쿼리 키 (향후 화면관리 연계용)
options: {
all: ["options"] as const,
byCategory: (categoryCode: string) => [...queryKeys.options.all, categoryCode] as const,
},
} as const;