refactor(automations): vertical-slice actions and triggers by domain

This commit is contained in:
CREDO23 2026-05-27 17:07:20 +02:00
parent ce45e11009
commit 8c32455818
24 changed files with 86 additions and 108 deletions

View file

@ -0,0 +1,10 @@
"""``schedule`` trigger: fired on a cron schedule in a given timezone."""
from __future__ import annotations
from .params import ScheduleTriggerParams
__all__ = ["ScheduleTriggerParams"]
# Side-effect: register on the triggers store.
from . import definition # noqa: E402, F401

View file

@ -0,0 +1,20 @@
"""``schedule`` ``TriggerDefinition`` registration."""
from __future__ import annotations
from ..store import register_trigger
from ..types import TriggerDefinition
from .params import ScheduleTriggerParams
SCHEDULE_TRIGGER = TriggerDefinition(
type="schedule",
description="Fire on a cron schedule in a given timezone.",
params_schema=ScheduleTriggerParams.model_json_schema(),
payload_schema={
"type": "object",
"additionalProperties": False,
"properties": {},
},
)
register_trigger(SCHEDULE_TRIGGER)

View file

@ -0,0 +1,12 @@
"""``ScheduleTriggerParams`` — params for the ``schedule`` trigger type."""
from __future__ import annotations
from pydantic import BaseModel, ConfigDict, Field
class ScheduleTriggerParams(BaseModel):
model_config = ConfigDict(extra="forbid")
cron: str = Field(..., description="Five-field cron expression.", examples=["0 9 * * 1-5"])
timezone: str = Field(..., description="IANA timezone.", examples=["Africa/Kigali"])