use crate::{
call_in::CallInInfo, rooms::invite_codes::InviteCode, streaming::StreamingLink,
utils::ExampleData,
};
#[derive(Clone, Debug, PartialEq, Eq)]
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
#[cfg_attr(
feature = "utoipa",
derive(utoipa::ToSchema),
schema(example = json!(MeetingDetails::example_data()))
)]
pub struct MeetingDetails {
#[cfg_attr(
feature = "serde",
serde(default, skip_serializing_if = "Option::is_none")
)]
#[cfg_attr(feature = "utoipa", schema(nullable = false))]
pub invite_code_id: Option<InviteCode>,
#[cfg_attr(
feature = "serde",
serde(default, skip_serializing_if = "Option::is_none")
)]
#[cfg_attr(feature = "utoipa", schema(nullable = false))]
pub call_in: Option<CallInInfo>,
#[cfg_attr(feature = "serde", serde(default))]
pub streaming_links: Vec<StreamingLink>,
}
impl ExampleData for MeetingDetails {
fn example_data() -> Self {
Self {
invite_code_id: Some(InviteCode::example_data()),
call_in: Some(CallInInfo::example_data()),
streaming_links: vec![StreamingLink::example_data()],
}
}
}