use rust_decimal::Decimal;
use serde::{Deserialize, Serialize};
#[derive(Clone, Copy, Debug, PartialEq, Eq, Serialize, Deserialize)]
#[serde(rename_all = "snake_case")]
pub enum CreditScope {
Account,
ApiKey,
Budget,
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Serialize, Deserialize)]
#[serde(rename_all = "snake_case")]
pub enum CreditUnit {
Credits,
Usd,
}
#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
pub struct CreditBalance {
pub scope: CreditScope,
pub unit: CreditUnit,
#[serde(with = "rust_decimal::serde::str_option")]
pub remaining: Option<Decimal>,
#[serde(with = "rust_decimal::serde::str_option")]
pub total: Option<Decimal>,
#[serde(with = "rust_decimal::serde::str_option")]
pub used: Option<Decimal>,
pub resets: Option<String>,
}