Update routing in next.config.ts to redirect "/tercih-robotu" to the hero form, add simple-icons dependency in package.json, and enhance database indexing for improved query performance. Remove unused SVG files and update metadata across various pages for better SEO and clarity.
All checks were successful
Deploy / deploy (push) Successful in 14m14s

This commit is contained in:
bilalgursen
2026-08-01 17:28:38 +03:00
parent 569b9e5da2
commit 8cf0c3267d
76 changed files with 5050 additions and 255 deletions

View File

@@ -1,9 +1,17 @@
import { NextResponse, type NextRequest } from "next/server";
import { PUAN_TURLERI, rankWindowFacets, type PuanTuruKey } from "@/lib/db";
import {
PUAN_TURLERI,
dilimAra,
rankWindowFacets,
type DilimKey,
type PuanTuruKey,
} from "@/lib/db";
import { KATEGORILER } from "@/lib/kategoriler";
// Ana sayfadaki sihirbaz modalı için: sıralamaya uygun kategori/il/üniversite
// tipi facet'leri. /sonuc bu veriyi server component'te doğrudan alır; burada
// client'tan sıra girildikten sonra çekilir.
// Sihirbaz modalı için: sıralamaya uygun kategori/il/üniversite tipi
// facet'leri. Kademeli filtre: `kategori` (tekrarlı) il adımını,
// `kategori` + `il` (tekrarlı) üniversite tipi adımını süzer — bir önceki
// adımın seçimi bir sonrakinin seçeneklerini daraltır (bkz. rankWindowFacets).
export function GET(request: NextRequest) {
const { searchParams } = request.nextUrl;
const sira = Number.parseInt(searchParams.get("sira") ?? "", 10);
@@ -18,5 +26,31 @@ export function GET(request: NextRequest) {
);
}
return NextResponse.json({ facetler: rankWindowFacets(sira, tur) });
const kategoriler = [
...new Set(
searchParams
.getAll("kategori")
.filter((k) => (KATEGORILER as readonly string[]).includes(k)),
),
];
const iller = [
...new Set(searchParams.getAll("il").filter((i) => i.trim().length > 0)),
].slice(0, 5);
// ?dilimler=1: /meraklisina'daki canlı dilim şeridi için dilim başına
// toplam sayılar da eklenir (limit 0 → yalnızca COUNT çalışır)
const dilimToplam =
searchParams.get("dilimler") === "1"
? Object.fromEntries(
(["hayal", "dengeli", "garanti"] as DilimKey[]).map((d) => [
d,
dilimAra(sira, tur, d, { limit: 0 }).toplam,
]),
)
: undefined;
return NextResponse.json({
facetler: rankWindowFacets(sira, tur, { kategoriler, iller }),
...(dilimToplam ? { dilimToplam } : {}),
});
}