use crate::UserId;
use serde::{Deserialize, Serialize};
use serde_json::Value;
use std::collections::HashSet;
pub type MeetingId = uuid::Uuid;
#[derive(Debug, Serialize, Deserialize, Eq, PartialEq)]
#[serde(rename_all = "camelCase")]
pub struct PublicKeys {
pub public_key: Vec<u8>,
pub verifying_key: Vec<u8>,
pub associated_data: Option<Value>,
}
#[derive(Debug, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub enum MeetingRequest {
NewRoom {
owner_id: UserId,
slots: HashSet<UserId>,
},
JoinRoom {
meeting_id: MeetingId,
user_id: UserId,
data: PublicKeys,
},
}
#[derive(Debug, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub enum MeetingResponse {
RoomCreated {
meeting_id: MeetingId,
owner_id: UserId,
},
RoomReady {
participants: Vec<(UserId, PublicKeys)>,
},
}