use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct CaptureEvent {
#[serde(rename = "anonymousId", skip_serializing_if = "Option::is_none")]
pub anonymous_id: Option<String>,
#[serde(rename = "channel", skip_serializing_if = "Option::is_none")]
pub channel: Option<String>,
#[serde(rename = "clip", skip_serializing_if = "Option::is_none")]
pub clip: Option<Box<models::ClipBody>>,
#[serde(rename = "currency", skip_serializing_if = "Option::is_none")]
pub currency: Option<String>,
#[serde(rename = "distinctId", skip_serializing_if = "Option::is_none")]
pub distinct_id: Option<String>,
#[serde(rename = "environment", skip_serializing_if = "Option::is_none")]
pub environment: Option<String>,
#[serde(rename = "error", skip_serializing_if = "Option::is_none")]
pub error: Option<Box<models::Exception>>,
#[serde(rename = "event", skip_serializing_if = "Option::is_none")]
pub event: Option<String>,
#[serde(rename = "groupId", skip_serializing_if = "Option::is_none")]
pub group_id: Option<String>,
#[serde(rename = "groupType", skip_serializing_if = "Option::is_none")]
pub group_type: Option<String>,
#[serde(rename = "kind", skip_serializing_if = "Option::is_none")]
pub kind: Option<String>,
#[serde(rename = "level", skip_serializing_if = "Option::is_none")]
pub level: Option<String>,
#[serde(rename = "library", skip_serializing_if = "Option::is_none")]
pub library: Option<String>,
#[serde(rename = "libraryVersion", skip_serializing_if = "Option::is_none")]
pub library_version: Option<String>,
#[serde(rename = "log", skip_serializing_if = "Option::is_none")]
pub log: Option<Box<models::LogBody>>,
#[serde(rename = "messageId", skip_serializing_if = "Option::is_none")]
pub message_id: Option<String>,
#[serde(rename = "metric", skip_serializing_if = "Option::is_none")]
pub metric: Option<Box<models::MetricBody>>,
#[serde(rename = "path", skip_serializing_if = "Option::is_none")]
pub path: Option<String>,
#[serde(rename = "personId", skip_serializing_if = "Option::is_none")]
pub person_id: Option<String>,
#[serde(rename = "product", skip_serializing_if = "Option::is_none")]
pub product: Option<String>,
#[serde(rename = "productId", skip_serializing_if = "Option::is_none")]
pub product_id: Option<String>,
#[serde(rename = "properties", skip_serializing_if = "Option::is_none")]
pub properties: Option<std::collections::HashMap<String, serde_json::Value>>,
#[serde(rename = "quantity", skip_serializing_if = "Option::is_none")]
pub quantity: Option<i32>,
#[serde(rename = "refCode", skip_serializing_if = "Option::is_none")]
pub ref_code: Option<String>,
#[serde(rename = "referrer", skip_serializing_if = "Option::is_none")]
pub referrer: Option<String>,
#[serde(rename = "release", skip_serializing_if = "Option::is_none")]
pub release: Option<String>,
#[serde(rename = "resource", skip_serializing_if = "Option::is_none")]
pub resource: Option<String>,
#[serde(rename = "revenue", skip_serializing_if = "Option::is_none")]
pub revenue: Option<f64>,
#[serde(rename = "service", skip_serializing_if = "Option::is_none")]
pub service: Option<String>,
#[serde(rename = "sessionId", skip_serializing_if = "Option::is_none")]
pub session_id: Option<String>,
#[serde(rename = "signupWeek", skip_serializing_if = "Option::is_none")]
pub signup_week: Option<String>,
#[serde(rename = "site", skip_serializing_if = "Option::is_none")]
pub site: Option<String>,
#[serde(rename = "span", skip_serializing_if = "Option::is_none")]
pub span: Option<Box<models::SpanBody>>,
#[serde(rename = "spanId", skip_serializing_if = "Option::is_none")]
pub span_id: Option<String>,
#[serde(rename = "timestamp", skip_serializing_if = "Option::is_none")]
pub timestamp: Option<String>,
#[serde(rename = "traceId", skip_serializing_if = "Option::is_none")]
pub trace_id: Option<String>,
#[serde(rename = "type", skip_serializing_if = "Option::is_none")]
pub r#type: Option<String>,
#[serde(rename = "url", skip_serializing_if = "Option::is_none")]
pub url: Option<String>,
#[serde(rename = "utm", skip_serializing_if = "Option::is_none")]
pub utm: Option<Box<models::Utm>>,
}
impl CaptureEvent {
pub fn new() -> CaptureEvent {
CaptureEvent {
anonymous_id: None,
channel: None,
clip: None,
currency: None,
distinct_id: None,
environment: None,
error: None,
event: None,
group_id: None,
group_type: None,
kind: None,
level: None,
library: None,
library_version: None,
log: None,
message_id: None,
metric: None,
path: None,
person_id: None,
product: None,
product_id: None,
properties: None,
quantity: None,
ref_code: None,
referrer: None,
release: None,
resource: None,
revenue: None,
service: None,
session_id: None,
signup_week: None,
site: None,
span: None,
span_id: None,
timestamp: None,
trace_id: None,
r#type: None,
url: None,
utm: None,
}
}
}