use std::collections::BTreeMap;
use serde::{Deserialize, Serialize};
use crate::providers::ApiSurface;
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct BridgeProfileResponse {
pub inference_gateway_base_url: String,
pub auth_scheme: String,
#[serde(default)]
pub models: Vec<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub default_model: Option<String>,
#[serde(default)]
pub organization_uuid: Option<String>,
#[serde(default)]
pub providers: Vec<ProviderHealth>,
#[serde(default, skip_serializing_if = "BTreeMap::is_empty")]
pub model_limits: BTreeMap<String, AdvertisedLimits>,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
pub struct AdvertisedLimits {
pub context_window: u32,
pub max_output_tokens: u32,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct ProviderHealth {
pub name: String,
pub surface: ApiSurface,
pub configured: bool,
#[serde(default)]
pub models: Vec<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub config_issue: Option<String>,
}