refactor: resolve the unexpected wrong payload

This commit is contained in:
Mahen 2026-04-13 13:41:16 +07:00
parent a684cd5a6e
commit 450e76cbe9
3 changed files with 23 additions and 4 deletions

View File

@ -9,6 +9,7 @@ import {
} from "../services/analyze.service";
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 },
);

View File

@ -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<AIRecommendationResponse> => {

View File

@ -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;
};