From 747d3e47d616bfbeb8130639707238c94d4ee9ec Mon Sep 17 00:00:00 2001 From: slhafzjw Date: Sun, 15 Feb 2026 21:27:11 +0800 Subject: [PATCH] refactor(Action): add StateAction with scheduled trigger support for state updates/callbacks --- .../partner/core/action/entity/Action.kt | 39 +++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/Partner-Main/src/main/java/work/slhaf/partner/core/action/entity/Action.kt b/Partner-Main/src/main/java/work/slhaf/partner/core/action/entity/Action.kt index 1304a51e..9a686bd1 100644 --- a/Partner-Main/src/main/java/work/slhaf/partner/core/action/entity/Action.kt +++ b/Partner-Main/src/main/java/work/slhaf/partner/core/action/entity/Action.kt @@ -150,3 +150,42 @@ data class ImmediateExecutableAction( override val description: String, override val source: String, ) : ExecutableAction() + +/** + * 用于计时的一次性触发或者针对某一数据源进行内容更新的行动 + */ +data class StateAction( + override val source: String, + override val reason: String, + override val description: String, + + override val scheduleType: Scheduled.ScheduleType, + override val scheduleContent: String, + + val trigger: Trigger +) : Action(), Scheduled { + + sealed interface Trigger { + + fun onTrigger() + + /** + * State 更新触发 + */ + class Update(val stateSource: T, val update: (stateSource: T) -> Unit) : Trigger { + override fun onTrigger() { + update(stateSource) + } + } + + /** + * 常规逻辑触发 + */ + class Call(val call: () -> Unit) : Trigger { + override fun onTrigger() { + call() + } + } + + } +} \ No newline at end of file