feat: update app.db and BACKLOG.md with new decisions and adjustments
All checks were successful
Deploy / deploy (push) Successful in 7m45s

- Updated the app.db file to reflect recent changes in the application state.
- Modified BACKLOG.md to include new entries regarding the removal of certain wizard steps, adjustments to priority chips, and the introduction of special quota conditions for candidates.
- Added details on the decision to link priority chips to data sources and clarified the implications for user experience and data handling.
This commit is contained in:
bilalgursen
2026-10-06 17:17:49 +03:00
parent c0696e2cbc
commit a3cb058a3b
74 changed files with 10334 additions and 445 deletions

View File

@@ -6,7 +6,9 @@
* (docs/arastirma/2026-09-25-kisisellestirme/README.md §8).
*
* Sorulmayanlar: cinsiyet, sağlık/engel, gelir. Ücret üst sınırı sorulur, gelir
* sorulmaz. Konum il düzeyindedir (adres/koordinat değil).
* sorulmaz. Konum il düzeyindedir (adres/koordinat değil). Özel kontenjan
* durumu (okul birincisi, şehit-gazi yakını, depremzede, 34 yaş üstü kadın)
* ÖSYM kontenjan hakkının beyanıdır, cinsiyet alanı değildir (6 Eki 2026).
*
* KULLANIM SINIRI (karar, 25 Eyl 2026): profil yalnız liste üretimi
* (rapor-havuzu) ve danışman aramalarında kullanılır; pazarlama, e-posta,
@@ -16,6 +18,7 @@
* Saf modül: client, server ve scripts aynı dosyayı okur.
*/
import { z } from "zod";
import { OZEL_DURUMLAR, OZEL_DURUM_KONTENJAN_ADI, ozelDurumDogrula, type OzelDurum } from "./ozel-durum";
export const PROFIL_SECENEKLERI = {
burs: {
@@ -51,6 +54,8 @@ export const PROFIL_SEMASI = z
dil: z.enum(["turkce", "ingilizce", "farketmez"]).optional(),
ogretimTuru: z.enum(["yalniz-orgun", "uzaktan-olur"]).optional(),
kampus: z.enum(["sakin", "kalabalik", "farketmez"]).optional(),
/** Özel kontenjan durumu (lib/ozel-durum.ts); sihirbazdaki alanla birleşir. */
ozelDurum: z.array(z.enum(OZEL_DURUMLAR)).max(OZEL_DURUMLAR.length).optional(),
})
.strict();
@@ -68,6 +73,7 @@ export const PROFIL_ALAN_ACIKLAMA: Record<ProfilAlani, string> = {
dil: "Öğretim dili tercihi",
ogretimTuru: "Uzaktan/açık öğretim kabul mü",
kampus: "Kampüs büyüklüğü tercihi",
ozelDurum: "Özel kontenjan durumu (okul-birincisi, sehit-gazi-yakini, depremzede, kadin-34; virgülle birden çok)",
};
/** Bilinmeyen anahtarları atarak profili güvenli okur; bozuk değer alanı düşürür. */
@@ -100,6 +106,10 @@ export function profilAlaniMetni(alan: ProfilAlani, deger: unknown): string {
return deger === "yalniz-orgun" ? "Yalnız örgün öğretim" : "Uzaktan/açık öğretim de olur";
case "kampus":
return `Kampüs: ${PROFIL_SECENEKLERI.kampus[deger as keyof typeof PROFIL_SECENEKLERI.kampus]}`;
case "ozelDurum":
return `Özel kontenjan: ${ozelDurumDogrula(deger)
.map((d: OzelDurum) => OZEL_DURUM_KONTENJAN_ADI[d].replace(/ kontenjanı$/, ""))
.join(", ")}`;
}
}