use actix::Message as ActixMessage;
use actix::Recipient;
use serde::{Deserialize, Serialize};
use crate::core::auth0::UserDetails;
use crate::websocket::webchat::output::Level;
use crate::websocket::webchat::output::OutputMessage;
use crate::websocket::webchat::output::OutputMessageType;
use crate::websocket::webchat::ConnectId;
#[derive(ActixMessage)]
#[rtype(result = "()")]
pub struct Connect {
pub addr: Recipient<OutputMessage>,
pub id: ConnectId,
pub user_details: Option<UserDetails>,
}
#[derive(ActixMessage)]
#[rtype(result = "()")]
pub struct Disconnect {
pub id: ConnectId,
}
#[derive(ActixMessage)]
#[rtype(result = "()")]
pub struct ConnectionWarnning {
pub id: ConnectId,
pub at: String,
}
#[derive(ActixMessage)]
#[rtype(result = "()")]
pub struct ServerTime {
pub time: String,
}
#[derive(Serialize, Deserialize, ActixMessage, Clone)]
#[rtype(result = "()")]
pub struct Broadcast {
pub level: Level,
pub ty: OutputMessageType,
pub msg: String,
}