diff --git a/src/hooks/useAnalyzeText.ts b/src/hooks/useAnalyzeText.ts index 46228de..73c71d8 100644 --- a/src/hooks/useAnalyzeText.ts +++ b/src/hooks/useAnalyzeText.ts @@ -7,8 +7,9 @@ import { scrapeProduct, getAIRecommendation, } from "../services/analyze.service"; -import { analyzeSchema } from "../app/validation/analyze.schema"; +import { analyzeSchema } from "../app/validation/analyze.schema"; import { getMetricId } from "../services/metric.service"; +import { getBrandId } from "../services/brand.service"; export const useAnalyseText = () => { const { data: session } = useSession(); @@ -145,12 +146,14 @@ export const useAnalyseText = () => { } const metricIdValue = await getMetricId(); + const brandId = await getBrandId(candidates[0].name); console.log("Payload to AI:", { user_email: session.user.email, - metric_id: metricIdValue, candidateCount: candidates.length, totalReviews: candidates.reduce((acc, c) => acc + c.reviews.length, 0), + metric_id: metricIdValue, + brand_id: brandId, }); setProgress({ status: "AI sedang menganalisis ulasan...", percent: 70 }); @@ -159,6 +162,7 @@ export const useAnalyseText = () => { user_email: session.user.email as string, candidates: candidates, metric_id: metricIdValue, + brand_id: brandId as number, }, { signal: abortControllerRef.current?.signal }, ); @@ -179,7 +183,7 @@ export const useAnalyseText = () => { } catch (error: any) { if (error.name === "AbortError" || signal.aborted) { console.log("🛠️ Request dibatalkan secara aman."); - return; + return; } console.error("Analysis Error:", error); diff --git a/src/services/analyze.service.ts b/src/services/analyze.service.ts index 3518249..9a448fe 100644 --- a/src/services/analyze.service.ts +++ b/src/services/analyze.service.ts @@ -65,8 +65,9 @@ export const getAnalysisData = async (email: string) => { export const getAIRecommendation = async ( payload: { user_email: string; - metric_id: number | 1; candidates: { name: string; url: string; reviews: string[] }[]; + metric_id: number | 1; + brand_id: number | 1; }, options?: { signal?: AbortSignal }, ): Promise => { diff --git a/src/services/brand.service.ts b/src/services/brand.service.ts index e815556..2f3aad6 100644 --- a/src/services/brand.service.ts +++ b/src/services/brand.service.ts @@ -1,3 +1,4 @@ +import prisma from "@/lib/prisma"; import { AnalysisData } from "../types"; export const formatBrandStats = (userAnalysis: AnalysisData[]) => { @@ -42,3 +43,16 @@ export const formatBrandStats = (userAnalysis: AnalysisData[]) => { return formattedBrands; }; + +export const getBrandId = async (brandName: string) => { + const brand = await prisma.brand.findFirst({ + where: { + name: brandName, + }, + select: { + brandId: true, + }, + }); + + return brand?.brandId ?? null; +};