use chrono::{DateTime, Utc};
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub struct ServerInfo {
pub server_id: String,
pub server_name: String,
pub started_at: DateTime<Utc>,
pub last_heartbeat: DateTime<Utc>,
pub worker_count: u32,
pub queues: Vec<String>,
}
impl ServerInfo {
pub fn new(
server_id: impl Into<String>,
server_name: impl Into<String>,
worker_count: u32,
queues: Vec<String>,
) -> Self {
let now = Utc::now();
Self {
server_id: server_id.into(),
server_name: server_name.into(),
started_at: now,
last_heartbeat: now,
worker_count,
queues,
}
}
}