import { useCallback } from 'react';

import { useStores } from '@/app/(root)/AppProviders';

export function useRateLyrics() {
  const { genForm } = useStores();

  const rateLyrics = useCallback(
    async ({
      requestId,
      preferredLyricsId,
    }: {
      requestId: string;
      preferredLyricsId: string | null;
    }) => {
      const result = await genForm.apiClient.POST(
        '/api/generate/lyrics-pair/rate',
        {
          body: {
            lyrics_request_id: requestId,
            preferred_lyrics_id: preferredLyricsId,
          },
        }
      );

      if (result.error) {
        throw new Error((result as any).error);
      }

      return result.data;
    },
    [genForm.apiClient]
  );

  return rateLyrics;
}
