#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub struct ReceiveMessageRequest {
#[serde(rename = "id")]
pub id: String,
#[serde(rename = "channel_id")]
pub channel_id: String,
#[serde(rename = "sender_id")]
pub sender_id: String,
#[serde(rename = "conversation_id")]
pub conversation_id: String,
#[serde(rename = "message")]
pub message: String,
#[serde(rename = "status")]
pub status: Status,
#[serde(rename = "created_at")]
pub created_at: String,
#[serde(rename = "reply_by", skip_serializing_if = "Option::is_none")]
pub reply_by: Option<String>,
#[serde(rename = "conversation_link", skip_serializing_if = "Option::is_none")]
pub conversation_link: Option<String>,
#[serde(rename = "attachments", skip_serializing_if = "Option::is_none")]
pub attachments: Option<Vec<crate::models::ReceiveMessageRequestAttachmentsInner>>,
}
impl ReceiveMessageRequest {
pub fn new(id: String, channel_id: String, sender_id: String, conversation_id: String, message: String, status: Status, created_at: String) -> ReceiveMessageRequest {
ReceiveMessageRequest {
id,
channel_id,
sender_id,
conversation_id,
message,
status,
created_at,
reply_by: None,
conversation_link: None,
attachments: None,
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Status {
#[serde(rename = "sent")]
Sent,
#[serde(rename = "delivered")]
Delivered,
#[serde(rename = "read")]
Read,
#[serde(rename = "failed")]
Failed,
}
impl Default for Status {
fn default() -> Status {
Self::Sent
}
}