// Paketsiz kullanıcıya giden raporun sunucu tarafı maskesi. // YÖK Atlas'ın ham program ve taban sıralaması verileri ücretsiz kalır. // Yalnızca AI'ın ürettiği kişisel gerekçe/risk/trend yorumu maskelenir; // böylece istemciye ücretli analiz metni hiç inmez. import type { RaporSonuc } from "./ai/rapor"; export const ACIK_SATIR = 3; const SAHTE_GEREKCE = "Bu tercih için kişisel gerekçe paketle açılır."; const SAHTE_RISK = "Sıralamana özel yerleşme riski paketle açılır."; const SAHTE_TREND = "Ham trend verisi ücretsizdir; AI yorumu paketle açılır."; /** genelDegerlendirme'nin yalnızca ilk 1-2 cümlesini bırakır. */ function degerlendirmeKirp(metin: string): string { const cumleler = metin.match(/[^.!?]+[.!?]+/g); if (!cumleler || cumleler.length <= 2) return metin; return `${cumleler.slice(0, 2).join(" ").trim()} …`; } export function raporMaskele(rapor: RaporSonuc): RaporSonuc { const tercihler = rapor.tercihler.map((t, i) => i < ACIK_SATIR ? t : { ...t, gerekce: SAHTE_GEREKCE, riskNotu: SAHTE_RISK, trendOzeti: SAHTE_TREND, }, ); return { tercihler, genelDegerlendirme: degerlendirmeKirp(rapor.genelDegerlendirme), uyarilar: rapor.uyarilar, // Program adı, üniversite ve 2021–2025 taban sıralamaları ham veridir. programlar: rapor.programlar, }; }