-- =============================================================
-- V040 – Energy Wh columns
-- Přidává kumulativní čítače grid energie do telemetrie
-- a per-slot Wh sloupce do audit_interval pro přesné
-- import/export měření (Deye reg 522-525 + per-minute fallback).
-- =============================================================

-- 1. telemetry_inverter: kumulativní Deye lifetime čítače
ALTER TABLE ems.telemetry_inverter
    ADD COLUMN IF NOT EXISTS grid_import_total_wh BIGINT,
    ADD COLUMN IF NOT EXISTS grid_export_total_wh BIGINT;

COMMENT ON COLUMN ems.telemetry_inverter.grid_import_total_wh IS
'Kumulativní import ze sítě (Wh) z Deye reg 522+523 (32-bit × 0.1 kWh). Lifetime čítač, monotónně rostoucí.';
COMMENT ON COLUMN ems.telemetry_inverter.grid_export_total_wh IS
'Kumulativní export do sítě (Wh) z Deye reg 524+525 (32-bit × 0.1 kWh). Lifetime čítač, monotónně rostoucí.';

-- 2. audit_interval: 6 základních energetických veličin (Wh za 15min slot)
ALTER TABLE ems.audit_interval
    ADD COLUMN IF NOT EXISTS actual_grid_import_wh  NUMERIC(10,1),
    ADD COLUMN IF NOT EXISTS actual_grid_export_wh  NUMERIC(10,1),
    ADD COLUMN IF NOT EXISTS actual_batt_charge_wh  NUMERIC(10,1),
    ADD COLUMN IF NOT EXISTS actual_batt_discharge_wh NUMERIC(10,1),
    ADD COLUMN IF NOT EXISTS actual_pv_production_wh NUMERIC(10,1),
    ADD COLUMN IF NOT EXISTS actual_load_consumption_wh NUMERIC(10,1);

COMMENT ON COLUMN ems.audit_interval.actual_grid_import_wh IS
'Import ze sítě za 15min slot (Wh). Primárně z delta Deye total counterů (reg 522+523), fallback per-minutový split z grid_power_w.';
COMMENT ON COLUMN ems.audit_interval.actual_grid_export_wh IS
'Export do sítě za 15min slot (Wh). Primárně z delta Deye total counterů (reg 524+525), fallback per-minutový split z grid_power_w.';
COMMENT ON COLUMN ems.audit_interval.actual_batt_charge_wh IS
'Nabití baterie za 15min slot (Wh). Per-minutový split z battery_power_w (záporné = nabíjení).';
COMMENT ON COLUMN ems.audit_interval.actual_batt_discharge_wh IS
'Vybití baterie za 15min slot (Wh). Per-minutový split z battery_power_w (kladné = vybíjení).';
COMMENT ON COLUMN ems.audit_interval.actual_pv_production_wh IS
'FVE výroba za 15min slot (Wh). SUM(pv_power_w) / 60 z minutových vzorků.';
COMMENT ON COLUMN ems.audit_interval.actual_load_consumption_wh IS
'Celková spotřeba za 15min slot (Wh). SUM(load_power_w) / 60 z minutových vzorků.';
