use std::sync::Arc;
use crate::client::MunaClient;
use crate::services::{PredictionService, PredictorService};
use super::openai::OpenAIClient;
use super::remote::{BetaPredictionService, RemotePredictionService};
#[derive(Clone)]
pub struct BetaClient {
pub predictions: BetaPredictionService,
pub openai: OpenAIClient,
}
impl BetaClient {
pub fn new(
client: Arc<MunaClient>,
predictors: PredictorService,
predictions: PredictionService,
) -> Self {
let beta_predictions = BetaPredictionService::new(client.clone());
let remote_predictions = RemotePredictionService::new(client);
let openai = OpenAIClient::new(predictors, predictions, remote_predictions);
Self { predictions: beta_predictions, openai }
}
}