import { useQuery } from '@tanstack/react-query';
import { fetchAssignmentRecommendations } from '@/features/projects/services/projectService';

export const recommendationsKey = (
  projectId: string,
  sprintId?: string,
  ticketId?: string,
) => ['projects', projectId, 'assignment-recommendations', sprintId, ticketId] as const;

export function useAssignmentRecommendations(
  projectId: string | undefined,
  options?: {
    sprintId?: string;
    ticketId?: string;
    activeSprint?: boolean;
    limit?: number;
    enabled?: boolean;
  },
) {
  const { sprintId, ticketId, activeSprint, limit, enabled = true } = options ?? {};

  return useQuery({
    queryKey: recommendationsKey(projectId ?? '', sprintId, ticketId),
    queryFn: () =>
      fetchAssignmentRecommendations(projectId!, {
        sprintId,
        ticketId,
        activeSprint,
        limit,
      }),
    enabled: Boolean(projectId) && enabled,
    staleTime: 30000,
  });
}
