refactor: ortak tipler @/types/yokatlas + features/rapor/types'a çıkarıldı, server-only korumaları eklendi (Faz 1)
- Program/PUAN_TURLERI/DilimKey/RankResults/UniturGrubu/ProgramNetSatiri/ SihirbazFacetleri artık src/types/yokatlas.ts'te; lib/db.ts yalnızca sorgu fonksiyonları barındırıyor - RaporSonuc/RaporKapsam/RaporParams/MaskeliRapor src/features/rapor/types/ rapor.ts'e taşındı; ölü kalan TercihSchema/RaporSchema silindi - 11 lib dosyasına import "server-only" eklendi; scripts'in düz node ile import ettiği dosyalara (db, appdb, rapor-havuzu, tadimlik-havuzu, ai/client, ai/cagri, credits) bilinçli eklenmedi - Davranış değişikliği yok; pnpm build yeşil Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
78
src/types/yokatlas.ts
Normal file
78
src/types/yokatlas.ts
Normal file
@@ -0,0 +1,78 @@
|
||||
// YÖK Atlas veri tipleri ve puan türü sabiti — client ve server ortak tüketir.
|
||||
// Sorgu fonksiyonları @/lib/db'de (server-only) yaşar; buraya runtime bağımlılığı
|
||||
// olan hiçbir şey eklenmez.
|
||||
|
||||
export type Program = {
|
||||
id: string;
|
||||
isim: string;
|
||||
universite: string;
|
||||
unitur: string | null;
|
||||
il: string | null;
|
||||
fakulte: string | null;
|
||||
tur: string;
|
||||
sure: number | null;
|
||||
sira2025: number | null;
|
||||
sira2024: number | null;
|
||||
sira2023: number | null;
|
||||
sira2022: number | null;
|
||||
sira2021: number | null;
|
||||
puan2025: number | null;
|
||||
kontenjan2025: number | null;
|
||||
yerlesen2025: number | null;
|
||||
};
|
||||
|
||||
export const PUAN_TURLERI = {
|
||||
say: "SAYISAL",
|
||||
ea: "EŞİT AĞIRLIK",
|
||||
soz: "SÖZEL",
|
||||
dil: "DİL",
|
||||
tyt: "TYT",
|
||||
} as const;
|
||||
|
||||
export type PuanTuruKey = keyof typeof PUAN_TURLERI;
|
||||
|
||||
export type DilimKey = "hayal" | "dengeli" | "garanti";
|
||||
|
||||
export type RankResults = {
|
||||
hayal: Program[];
|
||||
dengeli: Program[];
|
||||
garanti: Program[];
|
||||
/** Dilim başına pencereye düşen TOPLAM program sayısı (limit'ten bağımsız) */
|
||||
toplam: Record<DilimKey, number>;
|
||||
};
|
||||
|
||||
// Vakıf sayılan unitur değerleri (bkz. DISTINCT unitur: VAKIF, VAKIF MYO,
|
||||
// YURTDISI VAKIF). Devlet dışı her şey "vakıf" grubuna girer.
|
||||
export type UniturGrubu = "devlet" | "vakif";
|
||||
|
||||
/** netler tablosunun bir yılı: yerleşen son kişinin ders bazlı netleri. */
|
||||
export type ProgramNetSatiri = {
|
||||
yil: number;
|
||||
puanTuru: string | null;
|
||||
tabanPuan: number | null;
|
||||
obp: number | null;
|
||||
tytTrkNet: number | null;
|
||||
tytSosNet: number | null;
|
||||
tytMatNet: number | null;
|
||||
tytFenNet: number | null;
|
||||
aytMatNet: number | null;
|
||||
aytFizNet: number | null;
|
||||
aytKimNet: number | null;
|
||||
aytBioNet: number | null;
|
||||
aytTdeNet: number | null;
|
||||
aytTrh1Net: number | null;
|
||||
aytCog1Net: number | null;
|
||||
aytTrh2Net: number | null;
|
||||
aytCog2Net: number | null;
|
||||
aytDinNet: number | null;
|
||||
aytFelNet: number | null;
|
||||
ydtYdilNet: number | null;
|
||||
};
|
||||
|
||||
export type SihirbazFacetleri = {
|
||||
kategoriler: { ad: string; adet: number }[];
|
||||
iller: { il: string; adet: number }[];
|
||||
uniturler: { grup: UniturGrubu; adet: number }[];
|
||||
/** Penceredeki (filtre uygulanmamış) toplam program sayısı */
|
||||
toplam: number;
|
||||
};
|
||||
Reference in New Issue
Block a user