'use client'; import { useMemo } from 'react'; import { useQuery } from '@tanstack/react-query'; import { ticketService } from '@/services/api'; import type { TicketExtensionRequestsParams } from '@/types'; import type { ExtensionRequestStatusFilter } from './useExtensionRequestFilters'; import { extensionRequestKeys } from '../queries/extensionRequestKeys'; interface UseExtensionRequestsQueryParams { skip: number; limit: number; ticketName: string; statusFilter: ExtensionRequestStatusFilter; } function buildExtensionRequestParams({ skip, limit, ticketName, statusFilter, }: UseExtensionRequestsQueryParams): TicketExtensionRequestsParams { return { skip, limit, ticket_name: ticketName || undefined, status: statusFilter === 'all' ? undefined : statusFilter, }; } export function useExtensionRequestsQuery( params: UseExtensionRequestsQueryParams, ) { const { skip, limit, ticketName, statusFilter } = params; const queryParams = useMemo( () => buildExtensionRequestParams({ skip, limit, ticketName, statusFilter }), [limit, skip, statusFilter, ticketName], ); return useQuery({ queryKey: extensionRequestKeys.list(queryParams), queryFn: () => ticketService.getTicketExtensionRequests(queryParams), }); }