1use crate::prelude::*;
2use serde_json::Value;
3
4#[derive(Clone, Debug, Default)]
5pub struct OutboundMessage {
6 pub channel: Option<String>,
7 pub text: Option<String>,
8 pub payload: Option<Value>,
9}
10
11#[derive(Clone, Debug, Default)]
12pub struct SendResult {
13 pub message_id: Option<String>,
14 pub raw: Option<Value>,
15}
16
17#[async_trait::async_trait]
18pub trait EgressSender: Send + Sync {
19 async fn send(&self, ctx: &TenantCtx, msg: OutboundMessage) -> NodeResult<SendResult>;
20}