-- Týdenní požadavky na EV: explicitní cíl (target SoC) + deadline pro den
-- v týdnu (0 = pondělí .. 6 = neděle; čas Europe/Prague). Při příjezdu vozidla
-- je čte ems.fn_ev_session_defaults (R__099): nejbližší budoucí výskyt do 48 h
-- má přednost před forecastem z ev_usage_stats i před defaulty vozidla.
-- Ruční přepis (Discord výběry / UI → fn_ev_session_apply_patch) vždy vyhrává.

create table ems.ev_weekly_requirement (
  id serial primary key,
  vehicle_id int not null references ems.asset_vehicle (id),
  dow int not null check (dow between 0 and 6),
  target_soc_pct numeric(5, 2) not null check (target_soc_pct between 0 and 100),
  deadline_hour int not null check (deadline_hour between 0 and 23),
  enabled boolean not null default true,
  created_at timestamptz not null default now(),
  unique (vehicle_id, dow)
);

comment on table ems.ev_weekly_requirement is
'Týdenní požadavek na nabití vozidla: v den dow (0 = pondělí .. 6 = neděle) v deadline_hour (Europe/Prague) má mít vozidlo target_soc_pct. Vstup ems.fn_ev_session_defaults při zakládání ev_session (přednost před forecastem i defaulty).';
comment on column ems.ev_weekly_requirement.vehicle_id is
'Vozidlo (ems.asset_vehicle), max. 1 řádek na den v týdnu.';
comment on column ems.ev_weekly_requirement.dow is
'Den v týdnu DEADLINE: 0 = pondělí .. 6 = neděle (ISO pořadí, POZOR: ne postgres extract(dow) ani ev_usage_stats, kde 0 = neděle).';
comment on column ems.ev_weekly_requirement.target_soc_pct is
'Cílový SoC vozidla (%) v okamžiku deadline.';
comment on column ems.ev_weekly_requirement.deadline_hour is
'Hodina deadline v Europe/Prague (7 = 07:00 daného dne dow).';
comment on column ems.ev_weekly_requirement.enabled is
'false = řádek se při výběru defaultů ignoruje (požadavek dočasně vypnut bez smazání).';

-- Seed: Tesla Model Y (home-01) — pondělí 07:00 nabitá na 90 % (služebka).
insert into ems.ev_weekly_requirement (vehicle_id, dow, target_soc_pct, deadline_hour)
select av.id, 0, 90.0, 7
from ems.asset_vehicle av
join ems.site s on s.id = av.site_id
where s.code = 'home-01' and av.code = 'tesla-my';
