use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct Cron {
#[serde(rename = "cron_id")]
pub cron_id: uuid::Uuid,
#[serde(
rename = "assistant_id",
default,
with = "::serde_with::rust::double_option",
skip_serializing_if = "Option::is_none"
)]
pub assistant_id: Option<Option<uuid::Uuid>>,
#[serde(rename = "thread_id")]
pub thread_id: uuid::Uuid,
#[serde(rename = "end_time")]
pub end_time: String,
#[serde(rename = "schedule")]
pub schedule: String,
#[serde(rename = "created_at")]
pub created_at: String,
#[serde(rename = "updated_at")]
pub updated_at: String,
#[serde(
rename = "user_id",
default,
with = "::serde_with::rust::double_option",
skip_serializing_if = "Option::is_none"
)]
pub user_id: Option<Option<String>>,
#[serde(rename = "payload")]
pub payload: serde_json::Value,
#[serde(
rename = "next_run_date",
default,
with = "::serde_with::rust::double_option",
skip_serializing_if = "Option::is_none"
)]
pub next_run_date: Option<Option<String>>,
#[serde(rename = "metadata", skip_serializing_if = "Option::is_none")]
pub metadata: Option<serde_json::Value>,
}
impl Cron {
pub fn new(
cron_id: uuid::Uuid,
thread_id: uuid::Uuid,
end_time: String,
schedule: String,
created_at: String,
updated_at: String,
payload: serde_json::Value,
) -> Cron {
Cron {
cron_id,
assistant_id: None,
thread_id,
end_time,
schedule,
created_at,
updated_at,
user_id: None,
payload,
next_run_date: None,
metadata: None,
}
}
}