/**
* useIntegrationKeys Hook
*
* TanStack Query hook for fetching integration keys list for a tenant.
*
* Features:
* - Automatic caching with 5-minute stale time
* - Background refetching
* - Request deduplication
* - Pagination and filtering support
*
* @layer Presentation - TanStack Query Hook
*/
import { useQuery } from '@tanstack/react-query';
import { queryKeys } from '@/lib/query-keys';
import { integrationKeysApi } from '@/infrastructure/http/api/integration-keys/api';
import type { IntegrationKey } from '@/domain/entities/IntegrationKey';
import type { PaginationMeta } from '@/infrastructure/http/api/shared/types';
interface UseIntegrationKeysOptions {
tenantId: string;
page?: number;
limit?: number;
sortBy?: 'createdAt' | 'status' | 'lastUsedAt';
sortOrder?: 'asc' | 'desc';
status?: 'ACTIVE' | 'REVOKED' | 'EXPIRED';
enabled?: boolean;
}
interface UseIntegrationKeysResult {
keys: IntegrationKey[];
pagination: PaginationMeta;
isLoading: boolean;
error: Error | null;
}
/**
* Fetches integration keys list for a tenant
*
* @param options - Query options (tenantId, pagination, filters)
* @returns TanStack Query result with keys array and pagination
*
* @example
* ```typescript
* const { keys, pagination, isLoading, error } = useIntegrationKeys({
* tenantId: 'tenant-123',
* page: 1,
* limit: 20,
* status: 'ACTIVE'
* });
*
* if (isLoading) return