import { useQuery } from '@tanstack/react-query';
import api from '../../../utils/api';

export const aiassistantQueryKeys = {
  kb: {
    all: () => ['knowledge-bases'] as const,
    details: (id: string) => [...aiassistantQueryKeys.kb.all(), id] as const,
  },
  faq: {
    all: (agentId: string) => ['faqs', agentId] as const,
  },
};

export function useGetKB() {
  return useQuery({
    queryKey: aiassistantQueryKeys.kb.all(),
    queryFn: async () => {
      const res = await api.get('/knowledge-base');
      return res.data as { count: number; data: Array<any> };
    },
  });
}

export function useGetKBDocuments(kbId: string | null) {
  return useQuery({
    queryKey: aiassistantQueryKeys.kb.details(kbId ?? 'none'),
    queryFn: async () => {
      if (!kbId) return { count: 0, data: [] };
      const res = await api.get(`/knowledge-base/${kbId}/documents`, {
        params: { pagination: 0, limit: 10 },
      });
      return res.data as { count: number; data: Array<any> };
    },
    enabled: !!kbId,
  });
}

export function useGetFAQ(agentId: string) {
  return useQuery({
    queryKey: aiassistantQueryKeys.faq.all(agentId),
    queryFn: async () => {
      const { data } = await api.get('/knowledge-base/retrieveFAQs', { params: { agentId } });
      return data as { point: Array<any> };
    },
    enabled: !!agentId,
  });
}
