use serde::{Deserialize, Serialize};
use crate::models::common::{MessageError, Platform, Price, Status};
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct DeliveryReports {
#[serde(default)]
pub results: Vec<DeliveryReport>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct DeliveryReport {
pub bulk_id: Option<String>,
pub message_id: Option<String>,
pub to: Option<String>,
pub sender: Option<String>,
pub sent_at: Option<String>,
pub done_at: Option<String>,
pub message_count: Option<i32>,
pub mcc_mnc: Option<String>,
pub callback_data: Option<String>,
pub price: Option<Price>,
pub status: Option<Status>,
pub error: Option<MessageError>,
pub platform: Option<Platform>,
pub campaign_reference_id: Option<String>,
}
#[derive(Debug, Clone, Default, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct DeliveryReportsQuery {
#[serde(skip_serializing_if = "Option::is_none")]
pub bulk_id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub message_id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub limit: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub entity_id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub application_id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub campaign_reference_id: Option<String>,
}