/**
 * Centralized query key factory
 * @generated by @constructive-io/graphql-codegen
 * DO NOT EDIT - changes will be overwritten
 */
// ============================================================================
// 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
// ============================================================================
export const emailKeys = {
    /** All email queries */ all: ['email'],
    /** List query keys */ lists: () => [...emailKeys.all, 'list'],
    /** List query key with variables */ list: (variables) => [...emailKeys.lists(), variables],
    /** Detail query keys */ details: () => [...emailKeys.all, 'detail'],
    /** Detail query key for specific item */ detail: (id) => [...emailKeys.details(), id],
};
export const phoneNumberKeys = {
    /** All phoneNumber queries */ all: ['phonenumber'],
    /** List query keys */ lists: () => [...phoneNumberKeys.all, 'list'],
    /** List query key with variables */ list: (variables) => [...phoneNumberKeys.lists(), variables],
    /** Detail query keys */ details: () => [...phoneNumberKeys.all, 'detail'],
    /** Detail query key for specific item */ detail: (id) => [...phoneNumberKeys.details(), id],
};
export const cryptoAddressKeys = {
    /** All cryptoAddress queries */ all: ['cryptoaddress'],
    /** List query keys */ lists: () => [...cryptoAddressKeys.all, 'list'],
    /** List query key with variables */ list: (variables) => [...cryptoAddressKeys.lists(), variables],
    /** Detail query keys */ details: () => [...cryptoAddressKeys.all, 'detail'],
    /** Detail query key for specific item */ detail: (id) => [...cryptoAddressKeys.details(), id],
};
export const webauthnCredentialKeys = {
    /** All webauthnCredential queries */ all: ['webauthncredential'],
    /** List query keys */ lists: () => [...webauthnCredentialKeys.all, 'list'],
    /** List query key with variables */ list: (variables) => [...webauthnCredentialKeys.lists(), variables],
    /** Detail query keys */ details: () => [...webauthnCredentialKeys.all, 'detail'],
    /** Detail query key for specific item */ detail: (id) => [...webauthnCredentialKeys.details(), id],
};
export const auditLogAuthKeys = {
    /** All auditLogAuth queries */ all: ['auditlogauth'],
    /** List query keys */ lists: () => [...auditLogAuthKeys.all, 'list'],
    /** List query key with variables */ list: (variables) => [...auditLogAuthKeys.lists(), variables],
    /** Detail query keys */ details: () => [...auditLogAuthKeys.all, 'detail'],
    /** Detail query key for specific item */ detail: (id) => [...auditLogAuthKeys.details(), id],
};
export const identityProviderKeys = {
    /** All identityProvider queries */ all: ['identityprovider'],
    /** List query keys */ lists: () => [...identityProviderKeys.all, 'list'],
    /** List query key with variables */ list: (variables) => [...identityProviderKeys.lists(), variables],
    /** Detail query keys */ details: () => [...identityProviderKeys.all, 'detail'],
    /** Detail query key for specific item */ detail: (id) => [...identityProviderKeys.details(), id],
};
export const roleTypeKeys = {
    /** All roleType queries */ all: ['roletype'],
    /** List query keys */ lists: () => [...roleTypeKeys.all, 'list'],
    /** List query key with variables */ list: (variables) => [...roleTypeKeys.lists(), variables],
    /** Detail query keys */ details: () => [...roleTypeKeys.all, 'detail'],
    /** Detail query key for specific item */ detail: (id) => [...roleTypeKeys.details(), id],
};
export const userConnectedAccountKeys = {
    /** All userConnectedAccount queries */ all: ['userconnectedaccount'],
    /** List query keys */ lists: () => [...userConnectedAccountKeys.all, 'list'],
    /** List query key with variables */ list: (variables) => [...userConnectedAccountKeys.lists(), variables],
    /** Detail query keys */ details: () => [...userConnectedAccountKeys.all, 'detail'],
    /** Detail query key for specific item */ detail: (id) => [...userConnectedAccountKeys.details(), id],
};
export const userKeys = {
    /** All user queries */ all: ['user'],
    /** List query keys */ lists: () => [...userKeys.all, 'list'],
    /** List query key with variables */ list: (variables) => [...userKeys.lists(), variables],
    /** Detail query keys */ details: () => [...userKeys.all, 'detail'],
    /** Detail query key for specific item */ detail: (id) => [...userKeys.details(), id],
};
// ============================================================================
// Custom Query Keys
// ============================================================================
export const customQueryKeys = {
    /** Query key for currentUserAgent */ currentUserAgent: () => ['currentUserAgent'],
    /** Query key for currentIpAddress */ currentIpAddress: () => ['currentIpAddress'],
    /** Query key for currentUserId */ currentUserId: () => ['currentUserId'],
    /** Query key for requireStepUp */ requireStepUp: (variables) => ['requireStepUp', variables],
    /** Query key for currentUser */ currentUser: () => ['currentUser'],
};
/**

// ============================================================================
// 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) });
 * ```
 */
export const queryKeys = {
    email: emailKeys,
    phoneNumber: phoneNumberKeys,
    cryptoAddress: cryptoAddressKeys,
    webauthnCredential: webauthnCredentialKeys,
    auditLogAuth: auditLogAuthKeys,
    identityProvider: identityProviderKeys,
    roleType: roleTypeKeys,
    userConnectedAccount: userConnectedAccountKeys,
    user: userKeys,
    custom: customQueryKeys,
};
