fix: havuz uyarısı tek ölçüm yerine 7 günlük ortalamaya kıyaslasın (yavaş erime de yakalansın)
This commit is contained in:
@@ -9,8 +9,10 @@ export const LiveStatsBar = () => {
|
||||
const takibimdeki = tenders.filter((t) => t.takipte).length;
|
||||
const kalemSayisi = tenders.reduce((s, t) => s + (t.items?.length || 0), 0);
|
||||
|
||||
// Havuz sağlığı: kaynak (ilan.gov.tr) sayısı haftalık zirvenin çok altındaysa
|
||||
// Havuz sağlığı: kaynak (ilan.gov.tr) sayısı 7 GÜNLÜK ORTALAMANIN çok altındaysa
|
||||
// bunu açıkça söyleriz — kullanıcı "veri mi kayboldu?" diye düşünmesin.
|
||||
// Ortalama, tek bir ölçüme kıyaslamaktan daha güvenilir: havuz yavaş yavaş
|
||||
// erirse de yakalar, tek seferlik dalgalanmada boşuna uyarı vermez.
|
||||
const [havuz, setHavuz] = useState(null);
|
||||
useEffect(() => {
|
||||
fetch('/api/health/havuz?limit=40')
|
||||
@@ -18,7 +20,7 @@ export const LiveStatsBar = () => {
|
||||
.then((d) => setHavuz(d.success ? d : null))
|
||||
.catch(() => {});
|
||||
}, []);
|
||||
const dusuk = havuz?.zirveyeOran != null && havuz.zirveyeOran < 0.6;
|
||||
const dusuk = havuz?.yeterliVeri && havuz.ortalamayaOran != null && havuz.ortalamayaOran < 0.6;
|
||||
|
||||
const stats = [
|
||||
{ deger: liveStats.toplamIhale, etiket: 'Canlı İhale Havuzu', renk: 'text-white', dot: true },
|
||||
@@ -50,11 +52,11 @@ export const LiveStatsBar = () => {
|
||||
{dusuk && (
|
||||
<div
|
||||
className="flex items-center gap-1.5 text-amber-300"
|
||||
title={`ilan.gov.tr'de şu an ${havuz.son?.kaynak_toplam?.toLocaleString('tr-TR')} açık ihale var; bu hafta en yüksek ${havuz.haftalikZirve?.toLocaleString('tr-TR')} idi. Havuzun tamamı yüklendi — eksik veri yok.`}
|
||||
title={`ilan.gov.tr'de şu an ${havuz.son?.kaynak_toplam?.toLocaleString('tr-TR')} açık ihale var; son 7 günün ortalaması ${havuz.haftalikOrtalama?.toLocaleString('tr-TR')} (${havuz.olcumAdedi} ölçüm). Havuzun tamamı yüklendi — eksik veri yok.`}
|
||||
>
|
||||
<TrendingDown className="w-3.5 h-3.5" />
|
||||
<span className="font-bold">
|
||||
Kaynakta ihale sayısı düşük (%{Math.round(havuz.zirveyeOran * 100)})
|
||||
Kaynakta ihale sayısı düşük (7 gün ort. %{Math.round(havuz.ortalamayaOran * 100)})
|
||||
</span>
|
||||
</div>
|
||||
)}
|
||||
|
||||
Reference in New Issue
Block a user