noticelib/dto/
heartbeat_request.rsuse chrono::NaiveDateTime;
use common::utils::serialize_option_naive_date;
use serde::{Deserialize, Serialize};
use uuid::Uuid;
#[derive(Serialize, Deserialize, Debug, Clone)]
#[serde(rename_all = "camelCase")]
pub struct HeartbeatRequest {
#[serde(skip_serializing_if = "Option::is_none")]
pub id: Option<Uuid>,
#[serde(skip_serializing_if = "Option::is_none")]
pub device: Option<Uuid>,
#[serde(skip_serializing_if = "Option::is_none")]
pub ip: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub os_info: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(default)]
#[serde(with = "serialize_option_naive_date")]
pub heartbeat_time: Option<NaiveDateTime>,
#[serde(skip_serializing_if = "Option::is_none")]
pub cpu_num: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub cpu_model: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub cpu_usage: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub ram_total: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub ram_used: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub disk_total: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub disk_used: Option<i32>,
}