togglr_sdk/generated/models/
track_request.rs1use serde::{Deserialize, Serialize};
12
13#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
15pub struct TrackRequest {
16 #[serde(rename = "variant_key")]
18 pub variant_key: String,
19 #[serde(rename = "event_type")]
21 pub event_type: EventType,
22 #[serde(rename = "reward", skip_serializing_if = "Option::is_none")]
24 pub reward: Option<f32>,
25 #[serde(rename = "context", skip_serializing_if = "Option::is_none")]
27 pub context: Option<std::collections::HashMap<String, serde_json::Value>>,
28 #[serde(rename = "created_at", skip_serializing_if = "Option::is_none")]
30 pub created_at: Option<String>,
31 #[serde(rename = "dedup_key", skip_serializing_if = "Option::is_none")]
33 pub dedup_key: Option<String>,
34}
35
36impl TrackRequest {
37 pub fn new(variant_key: String, event_type: EventType) -> TrackRequest {
39 TrackRequest {
40 variant_key,
41 event_type,
42 reward: None,
43 context: None,
44 created_at: None,
45 dedup_key: None,
46 }
47 }
48}
49#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
51pub enum EventType {
52 #[serde(rename = "success")]
53 Success,
54 #[serde(rename = "failure")]
55 Failure,
56 #[serde(rename = "error")]
57 Error,
58}
59
60impl Default for EventType {
61 fn default() -> EventType {
62 Self::Success
63 }
64}
65