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

@@ -139,6 +139,37 @@ async function main() {
);
zorunlu(`sira${yil} var, puan${yil} yok`, siraPuanTutarsiz === 0, `${siraPuanTutarsiz} satır`);
// 6b. Kontenjan türü kırılımı (detay --kirilim; `…1` alanları bir önceki
// yıla yazılır, bu yüzden en yeni kırılım yılı yıl-1 olabilir). Türlerin
// toplamı genel kontenjanı aşamaz; yerleşen toplamı yıl toplamıyla uyuşmalı.
// Bilinen fark: refresh.ts `yerlesen()` toplamına y34kY dahil değil; bu
// kontrol o farkı görünür kılar (BACKLOG, 6 Eki 2026).
const kirilimYili = [yil, onceki].find((y) => kolonlar.has(`gk${y}`) && kolonlar.has(`y34k${y}`));
if (kirilimYili == null) {
bilgi("kontenjan türleri", false, "kırılım kolonu yok (detay --kirilim koşulmamış); atlandı");
} else {
const ky = kirilimYili;
const turToplamAsan = sayi(
`SELECT COUNT(*) AS n FROM programs WHERE kontenjan${ky} IS NOT NULL
AND COALESCE(obk${ky},0) + COALESCE(sgy${ky},0) + COALESCE(dprm${ky},0) + COALESCE(y34k${ky},0) > kontenjan${ky}`
);
zorunlu(
`kontenjan türleri ≤ kontenjan${ky}`,
turToplamAsan === 0,
`özel kontenjan toplamı genel kontenjanı aşan satır: ${turToplamAsan}${turToplamAsan ? ` ör. ${ornek(`SELECT id FROM programs WHERE COALESCE(obk${ky},0)+COALESCE(sgy${ky},0)+COALESCE(dprm${ky},0)+COALESCE(y34k${ky},0) > kontenjan${ky} LIMIT 3`)}` : ""}`
);
const kirilimli = sayi(`SELECT COUNT(*) AS n FROM programs WHERE gkY${ky} IS NOT NULL AND yerlesen${ky} IS NOT NULL`);
const yerlesenUyumsuz = sayi(
`SELECT COUNT(*) AS n FROM programs WHERE gkY${ky} IS NOT NULL AND yerlesen${ky} IS NOT NULL
AND COALESCE(gkY${ky},0) + COALESCE(obkY${ky},0) + COALESCE(sgyY${ky},0) + COALESCE(dprmY${ky},0) + COALESCE(y34kY${ky},0) <> yerlesen${ky}`
);
bilgi(
`yerlesen${ky} = türlerin yerleşen toplamı`,
kirilimli > 0 && yerlesenUyumsuz / kirilimli > 0.02,
`uyuşmayan ${yerlesenUyumsuz}/${kirilimli} (y34kY refresh toplamında yok; fark o kadarsa beklenen)`
);
}
// 7. Kategorik alanlar
const bozukTur = sayi(
`SELECT COUNT(*) AS n FROM programs WHERE tur NOT IN (${TURLER.map(() => "?").join(",")}) OR onlisans NOT IN (0, 1)`,