← back to Trademarks Copyright
src/app/api/score/route.ts
30 lines
import { NextRequest, NextResponse } from "next/server";
import { query } from "@/lib/db";
import { scoreItem } from "@/lib/scoring";
/**
* POST /api/score recomputes composite_score for every item using current scoring.ts weights.
* Useful after you tweak the algorithm.
*/
export async function POST(_req: NextRequest) {
const { rows } = await query<{
id: number;
distinctiveness_score: number | null;
recognition_score: number | null;
domain_available: boolean | null;
competing_active_marks: number | null;
monetization_breadth: number | null;
expired_date: string;
}>(
`SELECT id, distinctiveness_score, recognition_score, domain_available,
competing_active_marks, monetization_breadth, expired_date FROM items`
);
let updated = 0;
for (const r of rows) {
const score = scoreItem(r);
await query(`UPDATE items SET composite_score = $1, updated_at = NOW() WHERE id = $2`, [score, r.id]);
updated++;
}
return NextResponse.json({ updated });
}