@startuml
title Планировщик: генерация задач (activity)

start
:cron/loop\nscheduler/__main__.py;
:task_generator.run();
:Загрузка чек-листов\nс расписанием и источниками;
:Для каждого источника (facility)\nвзять last_mark;
:calc_allowed_interval(schedule_mark,\nnow, schedule, tz);
if ("Есть интервал\nи он завершился?") then (Да)
  :Создать REVIEW_TASK\n(snapshot checklist + facility);
  :Обновить метку в чек-листе\n_marks[facility_id] = now;
else (Нет)
  :Пропустить;
endif
stop
@enduml
