matrix-bridge-teams 0.1.0

A bridge between Matrix and Microsoft Teams written in Rust
use serde::{Deserialize, Serialize};

#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct TeamsMessage {
    pub id: String,
    pub channel_id: Option<String>,
    pub chat_id: Option<String>,
    pub sender_id: String,
    pub sender_name: String,
    pub content: String,
    pub content_type: String,
    pub attachments: Vec<TeamsAttachment>,
    pub reply_to: Option<String>,
    pub created_at: String,
    pub updated_at: Option<String>,
}

#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct TeamsAttachment {
    pub id: String,
    pub name: String,
    pub content_type: String,
    pub content_url: Option<String>,
    pub thumbnail_url: Option<String>,
}

#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct TeamsUser {
    pub id: String,
    pub display_name: String,
    pub user_principal_name: Option<String>,
    pub mail: Option<String>,
    pub avatar_url: Option<String>,
}

#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct TeamsChannel {
    pub id: String,
    pub team_id: String,
    pub display_name: String,
    pub description: Option<String>,
    pub channel_type: String,
    pub web_url: Option<String>,
}

#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct TeamsChat {
    pub id: String,
    pub topic: Option<String>,
    pub chat_type: String,
    pub web_url: Option<String>,
}

#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct TeamsTeam {
    pub id: String,
    pub display_name: String,
    pub description: Option<String>,
    pub web_url: Option<String>,
}