vapi_client/models/
analytics_operation.rs1use serde::{Deserialize, Serialize};
12use utoipa::ToSchema;
13
14
15use crate::models;
16
17#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize, ToSchema)]
18pub struct AnalyticsOperation {
19    #[serde(rename = "operation")]
21    pub operation: Operation,
22    #[serde(rename = "column")]
24    pub column: Column,
25    #[serde(rename = "alias", skip_serializing_if = "Option::is_none")]
27    pub alias: Option<String>,
28}
29
30impl AnalyticsOperation {
31    pub fn new(operation: Operation, column: Column) -> AnalyticsOperation {
32        AnalyticsOperation {
33            operation,
34            column,
35            alias: None,
36        }
37    }
38}
39#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize, ToSchema)]
41pub enum Operation {
42    #[serde(rename = "sum")]
43    Sum,
44    #[serde(rename = "avg")]
45    Avg,
46    #[serde(rename = "count")]
47    Count,
48    #[serde(rename = "min")]
49    Min,
50    #[serde(rename = "max")]
51    Max,
52    #[serde(rename = "history")]
53    History,
54}
55
56impl Default for Operation {
57    fn default() -> Operation {
58        Self::Sum
59    }
60}
61#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize, ToSchema)]
63pub enum Column {
64    #[serde(rename = "id")]
65    Id,
66    #[serde(rename = "cost")]
67    Cost,
68    #[serde(rename = "costBreakdown.llm")]
69    CostBreakdownPeriodLlm,
70    #[serde(rename = "costBreakdown.stt")]
71    CostBreakdownPeriodStt,
72    #[serde(rename = "costBreakdown.tts")]
73    CostBreakdownPeriodTts,
74    #[serde(rename = "costBreakdown.vapi")]
75    CostBreakdownPeriodVapi,
76    #[serde(rename = "costBreakdown.ttsCharacters")]
77    CostBreakdownPeriodTtsCharacters,
78    #[serde(rename = "costBreakdown.llmPromptTokens")]
79    CostBreakdownPeriodLlmPromptTokens,
80    #[serde(rename = "costBreakdown.llmCompletionTokens")]
81    CostBreakdownPeriodLlmCompletionTokens,
82    #[serde(rename = "duration")]
83    Duration,
84    #[serde(rename = "concurrency")]
85    Concurrency,
86    #[serde(rename = "minutesUsed")]
87    MinutesUsed,
88}
89
90impl Default for Column {
91    fn default() -> Column {
92        Self::Id
93    }
94}