zero4rs 2.0.0

zero4rs is a powerful, pragmatic, and extremely fast web framework for Rust
Documentation
use crate::core::auth0::UserDetails;

#[rustfmt::skip]
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
pub struct AppLogsPo {
    #[serde(skip_serializing_if = "Option::is_none")]
    pub id: Option<i64>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub level: Option<String>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub msg: Option<String>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub line: Option<String>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub platform: Option<String>,
    #[serde(rename = "deviceId", skip_serializing_if = "Option::is_none")]
    pub device_id: Option<String>,
    #[serde(rename = "deviceInfo", skip_serializing_if = "Option::is_none")]
    pub device_info: Option<String>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub timestamp: Option<String>,
}

#[rustfmt::skip]
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
pub struct AppLogsPoRecord {
    #[serde(skip_serializing_if = "Option::is_none")]
    pub log_id: Option<i64>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub level: Option<String>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub msg: Option<String>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub line: Option<String>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub platform: Option<String>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub device_id: Option<String>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub device_info: Option<String>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub timestamp: Option<String>,
}

impl AppLogsPoRecord {
    pub fn from(_user: Option<&UserDetails>, data: &AppLogsPo) -> Self {
        Self {
            log_id: data.id.to_owned(),
            level: data.level.to_owned(),
            msg: data.msg.to_owned(),
            line: data.line.to_owned(),
            platform: data.platform.to_owned(),
            device_id: data.device_id.to_owned(),
            device_info: data.device_info.to_owned(),
            timestamp: data.timestamp.to_owned(),
        }
    }
}

#[rustfmt::skip]
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
pub struct NetworkLogPo {
    #[serde(skip_serializing_if = "Option::is_none")]
    pub id: Option<i64>,
    #[serde(rename = "deviceId", skip_serializing_if = "Option::is_none")]
    pub device_id: Option<String>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub curl: Option<String>,
    #[serde(rename = "statusCode", skip_serializing_if = "Option::is_none")]
    pub status_code: Option<i64>,
    #[serde(rename = "contentSize", skip_serializing_if = "Option::is_none")]
    pub content_size: Option<i64>,
    #[serde(rename = "statusMessage", skip_serializing_if = "Option::is_none")]
    pub status_message: Option<String>,
    #[serde(rename = "responseSize", skip_serializing_if = "Option::is_none")]
    pub response_size: Option<i64>,
    #[serde(rename = "startAt", skip_serializing_if = "Option::is_none")]
    pub start_at: Option<i64>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub speed: Option<i64>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub timestamp: Option<String>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub version: Option<String>,
}

#[rustfmt::skip]
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
pub struct NetworkLogRecord {
    #[serde(skip_serializing_if = "Option::is_none")]
    pub network_id: Option<i64>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub device_id: Option<String>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub curl: Option<String>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub status_code: Option<i64>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub content_size: Option<i64>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub status_message: Option<String>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub response_size: Option<i64>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub start_at: Option<i64>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub speed: Option<i64>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub timestamp: Option<String>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub version: Option<String>,
}

impl NetworkLogRecord {
    pub fn from(_user: Option<&UserDetails>, data: &NetworkLogPo) -> Self {
        Self {
            network_id: data.id,
            device_id: data.device_id.to_owned(),
            curl: data.curl.to_owned(),
            status_code: data.status_code,
            content_size: data.content_size,
            status_message: data.status_message.to_owned(),
            response_size: data.response_size,
            start_at: data.start_at,
            speed: data.speed,
            timestamp: data.timestamp.to_owned(),
            version: data.version.to_owned(),
        }
    }
}

#[rustfmt::skip]
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
pub struct TasksLogPo {
    #[serde(skip_serializing_if = "Option::is_none")]
    pub id: Option<i64>,
    #[serde(rename = "deviceId", skip_serializing_if = "Option::is_none")]
    pub device_id: Option<String>,
    #[serde(rename = "taskName", skip_serializing_if = "Option::is_none")]
    pub task_name: Option<String>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub frequency: Option<String>,
    #[serde(rename = "startAt", skip_serializing_if = "Option::is_none")]
    pub start_at: Option<String>,
    #[serde(rename = "endAt", skip_serializing_if = "Option::is_none")]
    pub end_at: Option<String>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub duration: Option<String>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub description: Option<String>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub message: Option<String>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub timestamp: Option<String>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub platform: Option<String>,
    #[serde(rename = "appVersion", skip_serializing_if = "Option::is_none")]
    pub app_version: Option<String>,
}

#[rustfmt::skip]
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
pub struct TasksLogRecord {
    #[serde(skip_serializing_if = "Option::is_none")]
    pub task_id: Option<i64>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub device_id: Option<String>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub task_name: Option<String>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub frequency: Option<String>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub start_at: Option<String>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub end_at: Option<String>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub duration: Option<String>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub description: Option<String>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub message: Option<String>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub timestamp: Option<String>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub platform: Option<String>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub app_version: Option<String>,
}

impl TasksLogRecord {
    pub fn from(_user: Option<&UserDetails>, data: &TasksLogPo) -> Self {
        Self {
            task_id: data.id,
            device_id: data.device_id.to_owned(),
            task_name: data.task_name.to_owned(),
            frequency: data.frequency.to_owned(),
            start_at: data.start_at.to_owned(),
            end_at: data.end_at.to_owned(),
            duration: data.duration.to_owned(),
            description: data.description.to_owned(),
            message: data.message.to_owned(),
            timestamp: data.timestamp.to_owned(),
            platform: data.platform.to_owned(),
            app_version: data.app_version.to_owned(),
        }
    }
}