use kernel::UsdMicros;
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
pub struct CostAnswer {
pub total: UsdMicros,
pub by_run: Vec<(String, UsdMicros)>,
pub by_actor: Vec<(String, UsdMicros)>,
pub by_segment: Vec<(String, UsdMicros)>,
pub by_tool: Vec<(String, UsdMicros)>,
pub by_skill: Vec<(String, UsdMicros)>,
pub unpriced: UnpricedCalls,
pub renewals: Renewals,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
pub struct UnpricedCalls {
pub calls: u64,
pub tokens: u64,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
pub struct Renewals {
pub billed: UsdMicros,
pub read: u64,
pub late: u64,
pub unreported: u64,
pub refused: u64,
}