-- =============================================================
-- V005__planning_curtailment.sql
-- EMS Platform – rozšíření plánování o curtailment FVE pole A
--               a zelený bonus pole B
-- =============================================================

-- Přidat curtailment výsledek do planning_interval
ALTER TABLE ems.planning_interval
    ADD COLUMN IF NOT EXISTS pv_a_curtailed_w INT NOT NULL DEFAULT 0;

COMMENT ON COLUMN ems.planning_interval.pv_a_curtailed_w IS
'Plánované omezení výroby FVE pole A v W rozhodnuté LP solverem. '
'0 = žádné omezení výroby. Hodnota > 0 znamená že Deye dostane příkaz '
'omezit Output Power Limit na (pv_a_forecast_w - pv_a_curtailed_w).';

-- Přidat zelený bonus do audit_interval pro správnou ekonomiku
ALTER TABLE ems.audit_interval
    ADD COLUMN IF NOT EXISTS pv_b_production_wh  NUMERIC(10,3),
    ADD COLUMN IF NOT EXISTS green_bonus_czk      NUMERIC(10,4);

COMMENT ON COLUMN ems.audit_interval.pv_b_production_wh IS
'Skutečná výroba FVE pole B v Wh za 15min interval. '
'Odvozena z telemetrie: celkový pv_power_w minus výroba pole A (pokud měřena odděleně). '
'Slouží pro výpočet nároku na zelený bonus.';

COMMENT ON COLUMN ems.audit_interval.green_bonus_czk IS
'Příjem ze zeleného bonusu za výrobu pole B v Kč. '
'Vypočteno jako pv_b_production_wh / 1000 * green_bonus_czk_kwh z site_market_config. '
'Zahrnovat do celkových nákladů/příjmů lokality.';

-- Rozšíření site_market_config o zelený bonus
ALTER TABLE ems.site_market_config
    ADD COLUMN IF NOT EXISTS green_bonus_czk_kwh NUMERIC(8,4) NOT NULL DEFAULT 0,
    ADD COLUMN IF NOT EXISTS green_bonus_asset_code TEXT;

COMMENT ON COLUMN ems.site_market_config.green_bonus_czk_kwh IS
'Výše zeleného bonusu (dotace) v Kč/kWh za vyrobenou elektřinu z FVE pole s dotací. '
'Bonus se vztahuje vždy na výrobu bez ohledu na cenu nebo způsob využití energie.';

COMMENT ON COLUMN ems.site_market_config.green_bonus_asset_code IS
'Kód FVE pole (asset_pv_array.code) na které se zelený bonus vztahuje. '
'Příklad: pv-b. NULL = bonus se nevztahuje na žádné konkrétní pole.';

-- Seed: doplnit zelený bonus pro home-01
-- (hodnota bonusu bude upřesněna dle smlouvy s OTE/ERU)
UPDATE ems.site_market_config
SET
    green_bonus_czk_kwh   = 1.20,   -- TODO: doplnit skutečnou výši bonusu ze smlouvy
    green_bonus_asset_code = 'pv-b'
WHERE site_id = (SELECT id FROM ems.site WHERE code = 'home-01')
  AND valid_to IS NULL;
