use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct CostBreakdown {
#[serde(rename = "transport", skip_serializing_if = "Option::is_none")]
pub transport: Option<f64>,
#[serde(rename = "stt", skip_serializing_if = "Option::is_none")]
pub stt: Option<f64>,
#[serde(rename = "llm", skip_serializing_if = "Option::is_none")]
pub llm: Option<f64>,
#[serde(rename = "tts", skip_serializing_if = "Option::is_none")]
pub tts: Option<f64>,
#[serde(rename = "vapi", skip_serializing_if = "Option::is_none")]
pub vapi: Option<f64>,
#[serde(rename = "chat", skip_serializing_if = "Option::is_none")]
pub chat: Option<f64>,
#[serde(rename = "total", skip_serializing_if = "Option::is_none")]
pub total: Option<f64>,
#[serde(rename = "llmPromptTokens", skip_serializing_if = "Option::is_none")]
pub llm_prompt_tokens: Option<f64>,
#[serde(
rename = "llmCompletionTokens",
skip_serializing_if = "Option::is_none"
)]
pub llm_completion_tokens: Option<f64>,
#[serde(rename = "ttsCharacters", skip_serializing_if = "Option::is_none")]
pub tts_characters: Option<f64>,
#[serde(
rename = "analysisCostBreakdown",
skip_serializing_if = "Option::is_none"
)]
pub analysis_cost_breakdown: Option<models::AnalysisCostBreakdown>,
}
impl CostBreakdown {
pub fn new() -> CostBreakdown {
CostBreakdown {
transport: None,
stt: None,
llm: None,
tts: None,
vapi: None,
chat: None,
total: None,
llm_prompt_tokens: None,
llm_completion_tokens: None,
tts_characters: None,
analysis_cost_breakdown: None,
}
}
}