use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Status {
pub group_id: Option<i32>,
pub group_name: Option<String>,
pub id: Option<i32>,
pub name: Option<String>,
pub description: Option<String>,
pub action: Option<String>,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
#[serde(rename_all = "SCREAMING_SNAKE_CASE")]
pub enum MessageGeneralStatus {
Accepted,
Pending,
Undeliverable,
Delivered,
Expired,
Rejected,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
#[serde(rename_all = "SCREAMING_SNAKE_CASE")]
pub enum MessageErrorGroup {
Ok,
HandsetErrors,
UserErrors,
OperatorErrors,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct MessageError {
pub group_id: Option<i32>,
pub group_name: Option<MessageErrorGroup>,
pub id: Option<i32>,
pub name: Option<String>,
pub description: Option<String>,
pub permanent: Option<bool>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Price {
pub price_per_message: Option<f64>,
pub currency: Option<String>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Platform {
#[serde(skip_serializing_if = "Option::is_none")]
pub entity_id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub application_id: Option<String>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct RegionalOptions {
#[serde(skip_serializing_if = "Option::is_none")]
pub india_dlt: Option<IndiaDltOptions>,
#[serde(skip_serializing_if = "Option::is_none")]
pub turkey_iys: Option<TurkeyIysOptions>,
#[serde(skip_serializing_if = "Option::is_none")]
pub south_korea: Option<SouthKoreaOptions>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct IndiaDltOptions {
#[serde(skip_serializing_if = "Option::is_none")]
pub content_template_id: Option<String>,
pub principal_entity_id: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub telemarketer_id: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct TurkeyIysOptions {
#[serde(skip_serializing_if = "Option::is_none")]
pub brand_code: Option<i32>,
pub recipient_type: IysRecipientType,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
#[serde(rename_all = "SCREAMING_SNAKE_CASE")]
pub enum IysRecipientType {
Bireysel,
Tacir,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct SouthKoreaOptions {
#[serde(skip_serializing_if = "Option::is_none")]
pub title: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub reseller_code: Option<i32>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ValidityPeriod {
pub amount: i32,
#[serde(skip_serializing_if = "Option::is_none")]
pub time_unit: Option<ValidityPeriodTimeUnit>,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
#[serde(rename_all = "SCREAMING_SNAKE_CASE")]
pub enum ValidityPeriodTimeUnit {
Seconds,
Minutes,
Hours,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct DeliveryTimeWindow {
pub days: Vec<DeliveryDay>,
#[serde(skip_serializing_if = "Option::is_none")]
pub from: Option<DeliveryTime>,
#[serde(skip_serializing_if = "Option::is_none")]
pub to: Option<DeliveryTime>,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
#[serde(rename_all = "SCREAMING_SNAKE_CASE")]
#[allow(missing_docs)]
pub enum DeliveryDay {
Monday,
Tuesday,
Wednesday,
Thursday,
Friday,
Saturday,
Sunday,
}
#[derive(Debug, Clone, Copy, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct DeliveryTime {
pub hour: u8,
pub minute: u8,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct SendingSpeedLimit {
pub amount: i32,
#[serde(skip_serializing_if = "Option::is_none")]
pub time_unit: Option<SpeedLimitTimeUnit>,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
#[serde(rename_all = "SCREAMING_SNAKE_CASE")]
pub enum SpeedLimitTimeUnit {
Minute,
Hour,
Day,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct CursorPageInfo {
pub limit: Option<i32>,
pub next_cursor: Option<String>,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
#[serde(rename_all = "SCREAMING_SNAKE_CASE")]
pub enum BulkStatus {
Pending,
Paused,
Processing,
Canceled,
Finished,
Failed,
}