pub mod message_flow;
pub mod user_sync;
pub mod room_sync;
pub mod attachment_handler;
use std::sync::Arc;
use anyhow::Result;
use crate::db::DatabaseManager;
use crate::matrix::MatrixAppservice;
use crate::teams::TeamsClient;
pub struct BridgeCore {
matrix_client: Arc<MatrixAppservice>,
teams_client: Arc<TeamsClient>,
db_manager: Arc<DatabaseManager>,
message_flow: message_flow::MessageFlow,
user_sync: user_sync::UserSync,
room_sync: room_sync::RoomSync,
}
impl BridgeCore {
pub fn new(
matrix_client: Arc<MatrixAppservice>,
teams_client: Arc<TeamsClient>,
db_manager: Arc<DatabaseManager>,
) -> Self {
Self {
matrix_client,
teams_client,
db_manager,
message_flow: message_flow::MessageFlow::new(),
user_sync: user_sync::UserSync::new(),
room_sync: room_sync::RoomSync::new(),
}
}
pub async fn start(&self) -> Result<()> {
Ok(())
}
}