togglr_sdk/generated/models/
track_request.rs

1/*
2 * SDK API
3 *
4 * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
5 *
6 * The version of the OpenAPI document: 1.0.0
7 * 
8 * Generated by: https://openapi-generator.tech
9 */
10
11use serde::{Deserialize, Serialize};
12
13/// TrackRequest : Event sent from SDK. SDK SHOULD send an impression event for each evaluation (recommended). Conversions / errors / custom events are used to update algorithm statistics. 
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
15pub struct TrackRequest {
16    /// Variant key returned by evaluate (e.g. \"A\", \"v2\").
17    #[serde(rename = "variant_key")]
18    pub variant_key: String,
19    /// Type of event (e.g. \"success\", \"failure\", \"error\").
20    #[serde(rename = "event_type")]
21    pub event_type: EventType,
22    /// Numeric reward associated with event (e.g. 1.0 for conversion). Default 0.
23    #[serde(rename = "reward", skip_serializing_if = "Option::is_none")]
24    pub reward: Option<f32>,
25    /// Arbitrary context passed by SDK (user id, session, metadata).
26    #[serde(rename = "context", skip_serializing_if = "Option::is_none")]
27    pub context: Option<std::collections::HashMap<String, serde_json::Value>>,
28    /// Event timestamp. If omitted, server time will be used.
29    #[serde(rename = "created_at", skip_serializing_if = "Option::is_none")]
30    pub created_at: Option<String>,
31    /// Optional idempotency key to deduplicate duplicate events from SDK retries.
32    #[serde(rename = "dedup_key", skip_serializing_if = "Option::is_none")]
33    pub dedup_key: Option<String>,
34}
35
36impl TrackRequest {
37    /// Event sent from SDK. SDK SHOULD send an impression event for each evaluation (recommended). Conversions / errors / custom events are used to update algorithm statistics. 
38    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/// Type of event (e.g. \"success\", \"failure\", \"error\").
50#[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