1use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
15pub struct CaptureEvent {
16 #[serde(rename = "anonymousId", skip_serializing_if = "Option::is_none")]
17 pub anonymous_id: Option<String>,
18 #[serde(rename = "channel", skip_serializing_if = "Option::is_none")]
19 pub channel: Option<String>,
20 #[serde(rename = "clip", skip_serializing_if = "Option::is_none")]
21 pub clip: Option<Box<models::ClipBody>>,
22 #[serde(rename = "currency", skip_serializing_if = "Option::is_none")]
23 pub currency: Option<String>,
24 #[serde(rename = "distinctId", skip_serializing_if = "Option::is_none")]
25 pub distinct_id: Option<String>,
26 #[serde(rename = "environment", skip_serializing_if = "Option::is_none")]
27 pub environment: Option<String>,
28 #[serde(rename = "error", skip_serializing_if = "Option::is_none")]
29 pub error: Option<Box<models::Exception>>,
30 #[serde(rename = "event", skip_serializing_if = "Option::is_none")]
31 pub event: Option<String>,
32 #[serde(rename = "groupId", skip_serializing_if = "Option::is_none")]
33 pub group_id: Option<String>,
34 #[serde(rename = "groupType", skip_serializing_if = "Option::is_none")]
35 pub group_type: Option<String>,
36 #[serde(rename = "kind", skip_serializing_if = "Option::is_none")]
37 pub kind: Option<String>,
38 #[serde(rename = "level", skip_serializing_if = "Option::is_none")]
39 pub level: Option<String>,
40 #[serde(rename = "library", skip_serializing_if = "Option::is_none")]
41 pub library: Option<String>,
42 #[serde(rename = "libraryVersion", skip_serializing_if = "Option::is_none")]
43 pub library_version: Option<String>,
44 #[serde(rename = "log", skip_serializing_if = "Option::is_none")]
45 pub log: Option<Box<models::LogBody>>,
46 #[serde(rename = "messageId", skip_serializing_if = "Option::is_none")]
47 pub message_id: Option<String>,
48 #[serde(rename = "metric", skip_serializing_if = "Option::is_none")]
49 pub metric: Option<Box<models::MetricBody>>,
50 #[serde(rename = "path", skip_serializing_if = "Option::is_none")]
51 pub path: Option<String>,
52 #[serde(rename = "personId", skip_serializing_if = "Option::is_none")]
53 pub person_id: Option<String>,
54 #[serde(rename = "product", skip_serializing_if = "Option::is_none")]
55 pub product: Option<String>,
56 #[serde(rename = "productId", skip_serializing_if = "Option::is_none")]
57 pub product_id: Option<String>,
58 #[serde(rename = "properties", skip_serializing_if = "Option::is_none")]
59 pub properties: Option<std::collections::HashMap<String, serde_json::Value>>,
60 #[serde(rename = "quantity", skip_serializing_if = "Option::is_none")]
61 pub quantity: Option<i32>,
62 #[serde(rename = "refCode", skip_serializing_if = "Option::is_none")]
63 pub ref_code: Option<String>,
64 #[serde(rename = "referrer", skip_serializing_if = "Option::is_none")]
65 pub referrer: Option<String>,
66 #[serde(rename = "release", skip_serializing_if = "Option::is_none")]
67 pub release: Option<String>,
68 #[serde(rename = "resource", skip_serializing_if = "Option::is_none")]
69 pub resource: Option<String>,
70 #[serde(rename = "revenue", skip_serializing_if = "Option::is_none")]
71 pub revenue: Option<f64>,
72 #[serde(rename = "service", skip_serializing_if = "Option::is_none")]
73 pub service: Option<String>,
74 #[serde(rename = "sessionId", skip_serializing_if = "Option::is_none")]
75 pub session_id: Option<String>,
76 #[serde(rename = "signupWeek", skip_serializing_if = "Option::is_none")]
77 pub signup_week: Option<String>,
78 #[serde(rename = "site", skip_serializing_if = "Option::is_none")]
79 pub site: Option<String>,
80 #[serde(rename = "span", skip_serializing_if = "Option::is_none")]
81 pub span: Option<Box<models::SpanBody>>,
82 #[serde(rename = "spanId", skip_serializing_if = "Option::is_none")]
83 pub span_id: Option<String>,
84 #[serde(rename = "timestamp", skip_serializing_if = "Option::is_none")]
85 pub timestamp: Option<String>,
86 #[serde(rename = "traceId", skip_serializing_if = "Option::is_none")]
87 pub trace_id: Option<String>,
88 #[serde(rename = "type", skip_serializing_if = "Option::is_none")]
89 pub r#type: Option<String>,
90 #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
91 pub url: Option<String>,
92 #[serde(rename = "utm", skip_serializing_if = "Option::is_none")]
93 pub utm: Option<Box<models::Utm>>,
94}
95
96impl CaptureEvent {
97 pub fn new() -> CaptureEvent {
98 CaptureEvent {
99 anonymous_id: None,
100 channel: None,
101 clip: None,
102 currency: None,
103 distinct_id: None,
104 environment: None,
105 error: None,
106 event: None,
107 group_id: None,
108 group_type: None,
109 kind: None,
110 level: None,
111 library: None,
112 library_version: None,
113 log: None,
114 message_id: None,
115 metric: None,
116 path: None,
117 person_id: None,
118 product: None,
119 product_id: None,
120 properties: None,
121 quantity: None,
122 ref_code: None,
123 referrer: None,
124 release: None,
125 resource: None,
126 revenue: None,
127 service: None,
128 session_id: None,
129 signup_week: None,
130 site: None,
131 span: None,
132 span_id: None,
133 timestamp: None,
134 trace_id: None,
135 r#type: None,
136 url: None,
137 utm: None,
138 }
139 }
140}
141