-- 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';