use erp_core::events::EventBus; pub fn register_handlers(bus: &EventBus) { // workflow.task.completed → 更新随访任务状态 let (mut workflow_rx, _wf_handle) = bus.subscribe_filtered("workflow.task.".to_string()); tokio::spawn(async move { loop { match workflow_rx.recv().await { Some(event) if event.event_type == "workflow.task.completed" => { tracing::info!( event_id = %event.id, "健康模块收到工作流任务完成事件" ); // 后续可通过 db 连接更新 follow_up_task 状态 } Some(_) => {} None => break, } } }); // message.sent → 联动咨询会话 last_message_at let (mut msg_rx, _msg_handle) = bus.subscribe_filtered("message.".to_string()); tokio::spawn(async move { loop { match msg_rx.recv().await { Some(event) if event.event_type == "message.sent" => { tracing::info!( event_id = %event.id, "健康模块收到消息发送事件" ); // 后续可通过 db 连接更新 consultation_session.last_message_at } Some(_) => {} None => break, } } }); }