use serde::{Deserialize, Serialize};
use crate::models::inbox::InboundSmsResponse;
use crate::models::reports::DeliveryReports;
pub type DeliveryReportPayload = DeliveryReports;
pub type InboundSmsPayload = InboundSmsResponse;
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct UrlTrackingWebhook {
pub notification_type: Option<String>,
pub recipient: Option<String>,
pub url: Option<String>,
pub send_date_time: Option<i64>,
pub message_id: Option<String>,
pub bulk_id: Option<String>,
pub callback_data: Option<String>,
pub recipient_info: Option<RecipientInfo>,
pub geo_location_info: Option<GeoLocationInfo>,
pub application_id: Option<String>,
pub entity_id: Option<String>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct RecipientInfo {
pub device_type: Option<String>,
pub os: Option<String>,
pub device_name: Option<String>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct GeoLocationInfo {
pub country_name: Option<String>,
pub city: Option<String>,
}