soblendwa 0.1.0

SoblendWA: a blazing fast WhatsApp Web multi-device client library written in Rust. Crafted by Soblend Development Studio.
Documentation
use super::{ContextInfo, DocumentMessage, ImageMessage, LocationMessage, VideoMessage};

#[derive(Clone, PartialEq, prost::Message)]
pub struct ButtonsMessage {
    #[prost(string, optional, tag = "1")]
    pub text: Option<String>,
    #[prost(message, optional, tag = "2")]
    pub document_message: Option<DocumentMessage>,
    #[prost(message, optional, tag = "3")]
    pub image_message: Option<ImageMessage>,
    #[prost(message, optional, tag = "4")]
    pub video_message: Option<VideoMessage>,
    #[prost(message, optional, tag = "5")]
    pub location_message: Option<LocationMessage>,
    #[prost(string, optional, tag = "6")]
    pub content_text: Option<String>,
    #[prost(string, optional, tag = "7")]
    pub footer_text: Option<String>,
    #[prost(message, optional, tag = "8")]
    pub context_info: Option<ContextInfo>,
    #[prost(message, repeated, tag = "9")]
    pub buttons: Vec<Button>,
    #[prost(int32, optional, tag = "10")]
    pub header_type: Option<i32>,
}

impl ButtonsMessage {
    pub const HEADER_EMPTY: i32 = 1;
    pub const HEADER_TEXT: i32 = 2;
    pub const HEADER_DOCUMENT: i32 = 3;
    pub const HEADER_IMAGE: i32 = 4;
    pub const HEADER_VIDEO: i32 = 5;
    pub const HEADER_LOCATION: i32 = 6;
}

#[derive(Clone, PartialEq, prost::Message)]
pub struct Button {
    #[prost(string, optional, tag = "1")]
    pub button_id: Option<String>,
    #[prost(message, optional, tag = "2")]
    pub button_text: Option<ButtonText>,
    #[prost(int32, optional, tag = "3")]
    pub r#type: Option<i32>,
    #[prost(message, optional, tag = "4")]
    pub native_flow_info: Option<NativeFlowInfo>,
}

impl Button {
    pub const RESPONSE: i32 = 1;
    pub const NATIVE_FLOW: i32 = 2;
}

#[derive(Clone, PartialEq, prost::Message)]
pub struct ButtonText {
    #[prost(string, optional, tag = "1")]
    pub display_text: Option<String>,
}

#[derive(Clone, PartialEq, prost::Message)]
pub struct NativeFlowInfo {
    #[prost(string, optional, tag = "1")]
    pub name: Option<String>,
    #[prost(string, optional, tag = "2")]
    pub params_json: Option<String>,
}

#[derive(Clone, PartialEq, prost::Message)]
pub struct ButtonsResponseMessage {
    #[prost(string, optional, tag = "1")]
    pub selected_button_id: Option<String>,
    #[prost(string, optional, tag = "2")]
    pub selected_display_text: Option<String>,
    #[prost(message, optional, tag = "3")]
    pub context_info: Option<ContextInfo>,
    #[prost(int32, optional, tag = "4")]
    pub r#type: Option<i32>,
}

impl ButtonsResponseMessage {
    pub const DISPLAY_TEXT: i32 = 1;
}

#[derive(Clone, PartialEq, prost::Message)]
pub struct ListMessage {
    #[prost(string, optional, tag = "1")]
    pub title: Option<String>,
    #[prost(string, optional, tag = "2")]
    pub description: Option<String>,
    #[prost(string, optional, tag = "3")]
    pub button_text: Option<String>,
    #[prost(int32, optional, tag = "4")]
    pub list_type: Option<i32>,
    #[prost(message, repeated, tag = "5")]
    pub sections: Vec<ListSection>,
    #[prost(string, optional, tag = "7")]
    pub footer_text: Option<String>,
    #[prost(message, optional, tag = "8")]
    pub context_info: Option<ContextInfo>,
}

impl ListMessage {
    pub const SINGLE_SELECT: i32 = 1;
    pub const PRODUCT_LIST: i32 = 2;
}

#[derive(Clone, PartialEq, prost::Message)]
pub struct ListSection {
    #[prost(string, optional, tag = "1")]
    pub title: Option<String>,
    #[prost(message, repeated, tag = "2")]
    pub rows: Vec<ListRow>,
}

#[derive(Clone, PartialEq, prost::Message)]
pub struct ListRow {
    #[prost(string, optional, tag = "1")]
    pub title: Option<String>,
    #[prost(string, optional, tag = "2")]
    pub description: Option<String>,
    #[prost(string, optional, tag = "3")]
    pub row_id: Option<String>,
}

#[derive(Clone, PartialEq, prost::Message)]
pub struct ListResponseMessage {
    #[prost(string, optional, tag = "1")]
    pub title: Option<String>,
    #[prost(int32, optional, tag = "2")]
    pub list_type: Option<i32>,
    #[prost(message, optional, tag = "3")]
    pub single_select_reply: Option<SingleSelectReply>,
    #[prost(message, optional, tag = "4")]
    pub context_info: Option<ContextInfo>,
    #[prost(string, optional, tag = "5")]
    pub description: Option<String>,
}

#[derive(Clone, PartialEq, prost::Message)]
pub struct SingleSelectReply {
    #[prost(string, optional, tag = "1")]
    pub selected_row_id: Option<String>,
}

#[derive(Clone, PartialEq, prost::Message)]
pub struct InteractiveMessage {
    #[prost(message, optional, tag = "1")]
    pub header: Option<InteractiveHeader>,
    #[prost(message, optional, tag = "2")]
    pub body: Option<InteractiveBody>,
    #[prost(message, optional, tag = "3")]
    pub footer: Option<InteractiveFooter>,
    #[prost(message, optional, tag = "6")]
    pub native_flow_message: Option<NativeFlowMessage>,
    #[prost(message, optional, tag = "7")]
    pub carousel_message: Option<CarouselMessage>,
    #[prost(message, optional, tag = "15")]
    pub context_info: Option<ContextInfo>,
}

#[derive(Clone, PartialEq, prost::Message)]
pub struct InteractiveHeader {
    #[prost(string, optional, tag = "1")]
    pub title: Option<String>,
    #[prost(string, optional, tag = "2")]
    pub subtitle: Option<String>,
    #[prost(message, optional, tag = "3")]
    pub document_message: Option<DocumentMessage>,
    #[prost(message, optional, tag = "4")]
    pub image_message: Option<ImageMessage>,
    #[prost(bool, optional, tag = "5")]
    pub has_media_attachment: Option<bool>,
    #[prost(bytes = "vec", optional, tag = "6")]
    pub jpeg_thumbnail: Option<Vec<u8>>,
    #[prost(message, optional, tag = "7")]
    pub video_message: Option<VideoMessage>,
    #[prost(message, optional, tag = "8")]
    pub location_message: Option<LocationMessage>,
}

#[derive(Clone, PartialEq, prost::Message)]
pub struct InteractiveBody {
    #[prost(string, optional, tag = "1")]
    pub text: Option<String>,
}

#[derive(Clone, PartialEq, prost::Message)]
pub struct InteractiveFooter {
    #[prost(string, optional, tag = "1")]
    pub text: Option<String>,
}

#[derive(Clone, PartialEq, prost::Message)]
pub struct NativeFlowMessage {
    #[prost(message, repeated, tag = "1")]
    pub buttons: Vec<NativeFlowButton>,
    #[prost(string, optional, tag = "2")]
    pub message_params_json: Option<String>,
    #[prost(int32, optional, tag = "3")]
    pub message_version: Option<i32>,
}

#[derive(Clone, PartialEq, prost::Message)]
pub struct NativeFlowButton {
    #[prost(string, optional, tag = "1")]
    pub name: Option<String>,
    #[prost(string, optional, tag = "2")]
    pub button_params_json: Option<String>,
}

#[derive(Clone, PartialEq, prost::Message)]
pub struct CarouselMessage {
    #[prost(message, repeated, tag = "1")]
    pub cards: Vec<InteractiveMessage>,
    #[prost(int32, optional, tag = "2")]
    pub message_version: Option<i32>,
}

#[derive(Clone, PartialEq, prost::Message)]
pub struct InteractiveResponseMessage {
    #[prost(message, optional, tag = "1")]
    pub body: Option<InteractiveResponseBody>,
    #[prost(message, optional, tag = "2")]
    pub native_flow_response_message: Option<NativeFlowResponseMessage>,
    #[prost(message, optional, tag = "15")]
    pub context_info: Option<ContextInfo>,
}

#[derive(Clone, PartialEq, prost::Message)]
pub struct InteractiveResponseBody {
    #[prost(string, optional, tag = "1")]
    pub text: Option<String>,
    #[prost(int32, optional, tag = "2")]
    pub format: Option<i32>,
}

#[derive(Clone, PartialEq, prost::Message)]
pub struct NativeFlowResponseMessage {
    #[prost(string, optional, tag = "1")]
    pub name: Option<String>,
    #[prost(string, optional, tag = "2")]
    pub params_json: Option<String>,
    #[prost(int32, optional, tag = "3")]
    pub version: Option<i32>,
}

#[derive(Clone, PartialEq, prost::Message)]
pub struct TemplateMessage {
    #[prost(message, optional, tag = "2")]
    pub hydrated_four_row_template: Option<HydratedFourRowTemplate>,
    #[prost(message, optional, tag = "3")]
    pub context_info: Option<ContextInfo>,
    #[prost(message, optional, tag = "4")]
    pub hydrated_template: Option<HydratedFourRowTemplate>,
    #[prost(string, optional, tag = "9")]
    pub template_id: Option<String>,
}

#[derive(Clone, PartialEq, prost::Message)]
pub struct HydratedFourRowTemplate {
    #[prost(message, optional, tag = "1")]
    pub document_message: Option<DocumentMessage>,
    #[prost(string, optional, tag = "2")]
    pub hydrated_title_text: Option<String>,
    #[prost(message, optional, tag = "3")]
    pub image_message: Option<ImageMessage>,
    #[prost(message, optional, tag = "4")]
    pub video_message: Option<VideoMessage>,
    #[prost(message, optional, tag = "5")]
    pub location_message: Option<LocationMessage>,
    #[prost(string, optional, tag = "6")]
    pub hydrated_content_text: Option<String>,
    #[prost(string, optional, tag = "7")]
    pub hydrated_footer_text: Option<String>,
    #[prost(message, repeated, tag = "8")]
    pub hydrated_buttons: Vec<HydratedTemplateButton>,
    #[prost(string, optional, tag = "9")]
    pub template_id: Option<String>,
}

#[derive(Clone, PartialEq, prost::Message)]
pub struct HydratedTemplateButton {
    #[prost(message, optional, tag = "1")]
    pub quick_reply_button: Option<HydratedQuickReplyButton>,
    #[prost(message, optional, tag = "2")]
    pub url_button: Option<HydratedUrlButton>,
    #[prost(message, optional, tag = "3")]
    pub call_button: Option<HydratedCallButton>,
    #[prost(uint32, optional, tag = "4")]
    pub index: Option<u32>,
}

#[derive(Clone, PartialEq, prost::Message)]
pub struct HydratedQuickReplyButton {
    #[prost(string, optional, tag = "1")]
    pub display_text: Option<String>,
    #[prost(string, optional, tag = "2")]
    pub id: Option<String>,
}

#[derive(Clone, PartialEq, prost::Message)]
pub struct HydratedUrlButton {
    #[prost(string, optional, tag = "1")]
    pub display_text: Option<String>,
    #[prost(string, optional, tag = "2")]
    pub url: Option<String>,
}

#[derive(Clone, PartialEq, prost::Message)]
pub struct HydratedCallButton {
    #[prost(string, optional, tag = "1")]
    pub display_text: Option<String>,
    #[prost(string, optional, tag = "2")]
    pub phone_number: Option<String>,
}

#[derive(Clone, PartialEq, prost::Message)]
pub struct TemplateButtonReplyMessage {
    #[prost(string, optional, tag = "1")]
    pub selected_id: Option<String>,
    #[prost(string, optional, tag = "2")]
    pub selected_display_text: Option<String>,
    #[prost(message, optional, tag = "3")]
    pub context_info: Option<ContextInfo>,
    #[prost(uint32, optional, tag = "4")]
    pub selected_index: Option<u32>,
}