← 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 });
}