use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
pub enum UserIdType {
#[serde(rename = "user_id")]
UserId,
#[serde(rename = "union_id")]
UnionId,
#[serde(rename = "open_id")]
OpenId,
}
impl UserIdType {
pub fn as_str(&self) -> &'static str {
match self {
UserIdType::UserId => "user_id",
UserIdType::UnionId => "union_id",
UserIdType::OpenId => "open_id",
}
}
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct Minute {
pub minute_id: String,
pub title: Option<String>,
pub create_time: Option<String>,
pub start_time: Option<String>,
pub end_time: Option<String>,
pub creator: Option<UserInfo>,
pub status: Option<String>,
pub meeting_url: Option<String>,
pub meeting_id: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct UserInfo {
pub id: String,
pub name: Option<String>,
pub avatar_url: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MinuteMedia {
pub file_id: String,
pub filename: Option<String>,
pub file_size: Option<i64>,
pub file_type: Option<String>,
pub download_url: Option<String>,
pub expires_time: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MinuteTranscript {
pub content: String,
pub language: Option<String>,
pub format: Option<String>,
pub create_time: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MinuteStatistics {
pub duration: Option<i32>,
pub participant_count: Option<i32>,
pub speech_count: Option<i32>,
pub speech_duration: Option<i32>,
pub mute_duration: Option<i32>,
pub keywords: Option<Vec<KeywordStatistic>>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct KeywordStatistic {
pub keyword: String,
pub count: i32,
}