-- =============================================================
-- V017__green_bonus.sql
-- Zelený bonus na úrovni FVE pole (asset_pv_array), ne v prodejní ceně
-- =============================================================

ALTER TABLE ems.asset_pv_array
    ADD COLUMN IF NOT EXISTS green_bonus_czk_kwh    NUMERIC(10,6),
    ADD COLUMN IF NOT EXISTS green_bonus_valid_from DATE,
    ADD COLUMN IF NOT EXISTS green_bonus_valid_to   DATE,
    ADD COLUMN IF NOT EXISTS green_bonus_meter_code TEXT;

COMMENT ON COLUMN ems.asset_pv_array.green_bonus_czk_kwh IS
'Aktuální sazba zeleného bonusu Kč/kWh za vyrobenou elektřinu.
NULL = pole nemá zelený bonus. Bonus se počítá z celkové výroby pole
bez ohledu na to kam energie šla (interní spotřeba i export).
Sazba se mění ročně – při změně nastav green_bonus_valid_to na starém
záznamu a aktualizuj na novou hodnotu s novým green_bonus_valid_from.';

COMMENT ON COLUMN ems.asset_pv_array.green_bonus_valid_from IS
'Datum od kdy platí aktuální sazba zeleného bonusu (včetně).';

COMMENT ON COLUMN ems.asset_pv_array.green_bonus_valid_to IS
'Datum do kdy platí aktuální sazba zeleného bonusu (exclusive).
NULL = platí dosud. Při roční změně nastav na první den nového roku
a aktualizuj green_bonus_czk_kwh na novou sazbu.';

COMMENT ON COLUMN ems.asset_pv_array.green_bonus_meter_code IS
'Číslo zeleného elektroměru (EAN nebo číslo ze smlouvy s distributorem).
Slouží pro audit – bonus se počítá z odečtů tohoto elektroměru.';

ALTER TABLE ems.audit_interval
    ADD COLUMN IF NOT EXISTS green_bonus_czk NUMERIC(10,4) DEFAULT 0;

COMMENT ON COLUMN ems.audit_interval.green_bonus_czk IS
'Příjem ze zeleného bonusu za výrobu bonusových FVE polí v Kč.
Počítáno přes fn_green_bonus_revenue() v audit_filler.
Nezahrnuto v actual_cost_czk – je to samostatný příjem.';

-- Seed home-01: zelený bonus jen na pv-b (ongrid střídač na GEN portu)
UPDATE ems.asset_pv_array
SET
    green_bonus_czk_kwh    = 7.135,        -- TODO: doplnit skutečnou sazbu ze smlouvy
    green_bonus_valid_from = '2026-01-01',
    green_bonus_valid_to   = NULL,         -- platí dosud
    green_bonus_meter_code = 'TODO'        -- doplnit EAN zeleného elektroměru
WHERE site_id = (SELECT id FROM ems.site WHERE code = 'home-01')
  AND code = 'pv-b';
