SurfSense/surfsense_backend/app/automations/triggers/builtin/schedule/inputs.py

27 lines
757 B
Python

"""Build run inputs from a schedule fire."""
from __future__ import annotations
from datetime import datetime
from typing import Any
def schedule_runtime_inputs(
*,
fired_at: datetime,
scheduled_for: datetime,
previous_last_fired_at: datetime | None,
) -> dict[str, Any]:
"""Calendar context for a scheduled run.
- ``fired_at`` — actual fire time
- ``scheduled_for`` — cron-derived target time for this fire
- ``last_fired_at`` — previous fire time, or null on first fire
"""
return {
"fired_at": fired_at.isoformat(),
"scheduled_for": scheduled_for.isoformat(),
"last_fired_at": (
previous_last_fired_at.isoformat() if previous_last_fired_at else None
),
}