feat(veri): yıl kapsamı tek kaynağı (veri-yillari.ts) — 2026 yüklemesi P-0

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
bilalgursen
2026-09-21 16:35:24 +03:00
parent 8f4669e31d
commit 38e02e0ed9

38
src/lib/veri-yillari.ts Normal file
View File

@@ -0,0 +1,38 @@
/**
* Yerleştirme verisinin yıl kapsamı — TEK KAYNAK. Saf ve import'suz: client,
* server ve `scripts/` aynı dosyayı okur. Yeni yıl verisi yüklenince yalnız
* `SON_YIL` değişir (+ `pnpm refresh -- --yil <yıl>` ile DB inşası).
*/
/** Veri penceresinin ilk yılı. Kayıtlı rapor/tadımlık `siraGecmisi` dizileri
* bu yıla demirlidir; pencere kaydırılmaz, uzar. */
export const ILK_YIL = 2021;
/** En son yerleştirme yılı (DB'de `sira${SON_YIL}` kolonları dolu). */
export const SON_YIL = 2026;
export const ONCEKI_YIL = SON_YIL - 1;
/** [2021, …, SON_YIL] — `siraGecmisi` dizileriyle indeks hizalı. */
export const YILLAR: readonly number[] = Array.from(
{ length: SON_YIL - ILK_YIL + 1 },
(_, i) => ILK_YIL + i,
);
/** Bu veriyle tercih yapacak öğrencilerin yılı. */
export const TERCIH_YILI = SON_YIL + 1;
/** Sayfa başlıklarında görünen yıl ("… Taban Puanları 2026"). */
export const BASLIK_YILI = SON_YIL;
export const VERI_YIL_SAYISI = YILLAR.length;
/** "2021–2026" */
export const VERI_ARALIGI = `${ILK_YIL}–${SON_YIL}`;
/**
* Efektif sıra: son yılın sırası, yoksa bir önceki yılınki. İNDEKS SÖZLEŞMESİ —
* SQLite ifade indeksi metinsel eşleşmeyle çalışır; sorgular ve indeks
* betikleri bu dizgiyi birebir (virgülden sonra tek boşluk) kullanmalıdır.
*/
export const EFEKTIF_SIRA_SQL = `COALESCE(sira${SON_YIL}, sira${ONCEKI_YIL})`;