gsm_core/egress/
mod.rs

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}