use serde_repr::{Deserialize_repr, Serialize_repr};
use crate::{impl_default, impl_display};
/// Present if `realm` is present in `fetch_event_types`.
///
/// The configured `video call provider` for the organization.
///
/// - 0 = None
/// - 1 = Jitsi Meet
/// - 3 = Zoom (User OAuth integration)
/// - 4 = BigBlueButton
/// - 5 = Zoom (Server to Server OAuth integration)
///
/// Note that only one of the [Zoom integrations][zoom-video-calls] can be configured on a Zulip server.
///
/// **Changes**: In Zulip 10.0 (feature level 353), added the Zoom Server to Server OAuth option. In Zulip 3.0 (feature level 1), added the None option to disable video call UI. [zoom-video-calls](https://zulip.readthedocs.io/en/latest/production/video-calls.html#zoom)
#[repr(u8)]
#[derive(Clone, Copy, Debug, Eq, PartialEq, Deserialize_repr, Serialize_repr)]
pub enum RealmVideoChatProvider {
None = 0,
JitsiMeet = 1,
ZoomUserOauth = 3,
BigBlueButton = 4,
ZoomServerOauth = 5,
}
impl RealmVideoChatProvider {
/// Creates a new [RealmVideoChatProvider].
pub const fn new() -> Self {
Self::None
}
}
impl_default!(RealmVideoChatProvider);
impl_display!(RealmVideoChatProvider);