flashmind_types/
credits.rs1use rust_decimal::Decimal;
4use serde::{Deserialize, Serialize};
5
6#[derive(Clone, Copy, Debug, PartialEq, Eq, Serialize, Deserialize)]
8#[serde(rename_all = "snake_case")]
9pub enum CreditScope {
10 Account,
11 ApiKey,
12 Budget,
13}
14
15#[derive(Clone, Copy, Debug, PartialEq, Eq, Serialize, Deserialize)]
17#[serde(rename_all = "snake_case")]
18pub enum CreditUnit {
19 Credits,
20 Usd,
21}
22
23#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
25pub struct CreditBalance {
26 pub scope: CreditScope,
27 pub unit: CreditUnit,
28 #[serde(with = "rust_decimal::serde::str_option")]
29 pub remaining: Option<Decimal>,
30 #[serde(with = "rust_decimal::serde::str_option")]
31 pub total: Option<Decimal>,
32 #[serde(with = "rust_decimal::serde::str_option")]
33 pub used: Option<Decimal>,
34 pub resets: Option<String>,
35}