"use strict";
/**
 * Centralized query key factory
 * @generated by @constructive-io/graphql-codegen
 * DO NOT EDIT - changes will be overwritten
 */
Object.defineProperty(exports, "__esModule", { value: true });
exports.queryKeys = exports.storeKeys = exports.refKeys = exports.objectKeys = exports.getAllTreeNodesRecordKeys = exports.commitKeys = void 0;
// ============================================================================
// This file provides a centralized, type-safe query key factory following
// the lukemorales query-key-factory pattern for React Query.
//
// Benefits:
// - Single source of truth for all query keys
// - Type-safe key access with autocomplete
// - Hierarchical invalidation (invalidate all 'user.*' queries)
// - Scoped keys for parent-child relationships
// ============================================================================
// ============================================================================
// Entity Query Keys
// ============================================================================
exports.commitKeys = {
    /** All commit queries */ all: ['commit'],
    /** List query keys */ lists: () => [...exports.commitKeys.all, 'list'],
    /** List query key with variables */ list: (variables) => [...exports.commitKeys.lists(), variables],
    /** Detail query keys */ details: () => [...exports.commitKeys.all, 'detail'],
    /** Detail query key for specific item */ detail: (id) => [...exports.commitKeys.details(), id],
};
exports.getAllTreeNodesRecordKeys = {
    /** All getAllTreeNodesRecord queries */ all: ['getalltreenodesrecord'],
    /** List query keys */ lists: () => [...exports.getAllTreeNodesRecordKeys.all, 'list'],
    /** List query key with variables */ list: (variables) => [...exports.getAllTreeNodesRecordKeys.lists(), variables],
    /** Detail query keys */ details: () => [...exports.getAllTreeNodesRecordKeys.all, 'detail'],
    /** Detail query key for specific item */ detail: (id) => [...exports.getAllTreeNodesRecordKeys.details(), id],
};
exports.objectKeys = {
    /** All object queries */ all: ['object'],
    /** List query keys */ lists: () => [...exports.objectKeys.all, 'list'],
    /** List query key with variables */ list: (variables) => [...exports.objectKeys.lists(), variables],
    /** Detail query keys */ details: () => [...exports.objectKeys.all, 'detail'],
    /** Detail query key for specific item */ detail: (id) => [...exports.objectKeys.details(), id],
};
exports.refKeys = {
    /** All ref queries */ all: ['ref'],
    /** List query keys */ lists: () => [...exports.refKeys.all, 'list'],
    /** List query key with variables */ list: (variables) => [...exports.refKeys.lists(), variables],
    /** Detail query keys */ details: () => [...exports.refKeys.all, 'detail'],
    /** Detail query key for specific item */ detail: (id) => [...exports.refKeys.details(), id],
};
exports.storeKeys = {
    /** All store queries */ all: ['store'],
    /** List query keys */ lists: () => [...exports.storeKeys.all, 'list'],
    /** List query key with variables */ list: (variables) => [...exports.storeKeys.lists(), variables],
    /** Detail query keys */ details: () => [...exports.storeKeys.all, 'detail'],
    /** Detail query key for specific item */ detail: (id) => [...exports.storeKeys.details(), id],
};
/**

// ============================================================================
// Unified Query Key Store
// ============================================================================

 * Unified query key store
 *
 * Use this for type-safe query key access across your application.
 *
 * @example
 * ```ts
 * // Invalidate all user queries
 * queryClient.invalidateQueries({ queryKey: queryKeys.user.all });
 *
 * // Invalidate user list queries
 * queryClient.invalidateQueries({ queryKey: queryKeys.user.lists() });
 *
 * // Invalidate specific user
 * queryClient.invalidateQueries({ queryKey: queryKeys.user.detail(userId) });
 * ```
 */
exports.queryKeys = {
    commit: exports.commitKeys,
    getAllTreeNodesRecord: exports.getAllTreeNodesRecordKeys,
    object: exports.objectKeys,
    ref: exports.refKeys,
    store: exports.storeKeys,
};
