use serde::Serialize;
#[derive(Debug, Clone, PartialEq, Serialize)]
pub struct StatusSnapshot {
pub account: Option<AccountStatus>,
pub rate_limits: Vec<RateLimitWindow>,
pub credits_balance: Option<f64>,
pub warnings: Vec<String>,
}
#[derive(Debug, Clone, PartialEq, Serialize)]
pub struct AccountStatus {
pub name: Option<String>,
pub email: Option<String>,
pub structure: Option<String>,
pub plan: Option<String>,
pub has_active_subscription: Option<bool>,
pub subscription_expires_at: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Serialize)]
pub struct RateLimitWindow {
pub name: String,
pub remaining_percent: f64,
pub reset_at: Option<String>,
}
#[derive(Debug, Clone, PartialEq)]
pub(crate) struct UsageStatus {
pub(crate) account: Option<AccountStatus>,
pub(crate) rate_limits: Vec<RateLimitWindow>,
pub(crate) credits_balance: Option<f64>,
}