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, Eq, 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(super) struct UsageStatus {
pub(super) account: Option<AccountStatus>,
pub(super) rate_limits: Vec<RateLimitWindow>,
pub(super) credits_balance: Option<f64>,
}