use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct AiTokenUsageBucket {
#[serde(rename = "key")]
pub key: String,
#[serde(rename = "provider")]
pub provider: String,
#[serde(rename = "model")]
pub model: String,
#[serde(rename = "input_tokens")]
pub input_tokens: i32,
#[serde(rename = "cache_read_tokens")]
pub cache_read_tokens: i32,
#[serde(rename = "cache_write_tokens")]
pub cache_write_tokens: i32,
#[serde(rename = "output_tokens")]
pub output_tokens: i32,
#[serde(rename = "reported_cost_nano_usd", skip_serializing_if = "Option::is_none")]
pub reported_cost_nano_usd: Option<i32>,
#[serde(rename = "requests")]
pub requests: i32,
}
impl AiTokenUsageBucket {
pub fn new(key: String, provider: String, model: String, input_tokens: i32, cache_read_tokens: i32, cache_write_tokens: i32, output_tokens: i32, requests: i32) -> AiTokenUsageBucket {
AiTokenUsageBucket {
key,
provider,
model,
input_tokens,
cache_read_tokens,
cache_write_tokens,
output_tokens,
reported_cost_nano_usd: None,
requests,
}
}
}