// 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),
    // Kişisel uyarılar ücretli katmandır; istemciye hiç inmez.
    uyarilar: [],
    // Program adı, üniversite ve 2021–2025 taban sıralamaları ham veridir.
    programlar: rapor.programlar,
  };
}
