korkece fve predikce, grafy predikci
Some checks failed
CI and deploy / migration-check (push) Failing after 10s
CI and deploy / deploy (push) Has been skipped

This commit is contained in:
Dusan Vojacek
2026-04-22 19:26:46 +02:00
parent ffe80679cc
commit 9ca4b4c577
10 changed files with 819 additions and 5 deletions

View File

@@ -5,6 +5,7 @@ import {
getCurrentPlan,
getSiteForecastPv,
getSitePrices,
getForecastPvSlotsRangeCorrected,
type SiteEffectivePriceRowDto,
} from '../api/backend'
import { getJson } from '../api/postgrest'
@@ -279,6 +280,20 @@ export function useDashboardData(siteId: number | null) {
if (!fc) continue
addForecastToByStart(fc, forecastBySlot)
}
const windowFromIso = new Date(windowStart).toISOString()
const windowToIso = new Date(windowStart + TOTAL_SLOTS * SLOT_MS).toISOString()
const correctedSlots = await getForecastPvSlotsRangeCorrected(siteId, windowFromIso, windowToIso).catch(
() => [] as Awaited<ReturnType<typeof getForecastPvSlotsRangeCorrected>>,
)
const correctedBySlot = new Map<string, number>()
for (const r of correctedSlots) {
const t = new Date(r.interval_start).getTime()
if (!Number.isFinite(t)) continue
const v = r.pv_forecast_corrected_w
if (v == null) continue
correctedBySlot.set(slotTimeKey(t), Number(v))
}
for (const ymd of weekDates) {
const fc = forecastByYmd.get(ymd) ?? null
if (!fc) {
@@ -364,6 +379,10 @@ export function useDashboardData(siteId: number | null) {
base.pv_a_forecast_w = fc.a
base.pv_b_forecast_w = fc.b
}
const corr = correctedBySlot.get(k)
if (corr != null) {
base.pv_forecast_corrected_w = corr
}
const pi = planBySlot.get(k)
if (pi) mergeInterval(base, pi)