-- True pokud má lokalita aspoň jedno PV pole se zeleným bonusem v aktuálním kalendářním dni (Europe/Prague).
create or replace function ems.fn_site_has_active_green_bonus_pv(p_site_id int)
returns boolean
language sql
stable
as $$
  select exists (
    select 1
    from ems.asset_pv_array apa
    where apa.site_id = p_site_id
      and apa.green_bonus_czk_kwh is not null
      and apa.green_bonus_czk_kwh > 0
      and (
        apa.green_bonus_valid_from is null
        or (timezone('Europe/Prague', now()))::date >= apa.green_bonus_valid_from
      )
      and (
        apa.green_bonus_valid_to is null
        or (timezone('Europe/Prague', now()))::date < apa.green_bonus_valid_to
      )
  );
$$;

comment on function ems.fn_site_has_active_green_bonus_pv(int) is
  'EMS reg 340: true pokud existuje PV pole na site se zeleným bonusem (green_bonus_czk_kwh > 0) platné dnes v Europe/Prague.';
