Skip to main content

llmrix_rust_sdk/model/
cron.rs

1use serde::{Deserialize, Serialize};
2
3/// A scheduled cron task.
4#[derive(Debug, Clone, Deserialize, Default)]
5pub struct CronTask {
6    pub id: String,
7    pub name: String,
8    pub prompt: String,
9    pub schedule_type: String,
10    pub schedule_expr: String,
11    pub status: String,
12    pub thread_id: String,
13    pub user_id: String,
14    pub channel: String,
15    pub last_run: f64,
16    pub last_run_error: String,
17    pub last_run_output: String,
18    pub next_run: f64,
19    pub created_at: f64,
20    pub updated_at: f64,
21}
22
23/// Request body for creating a cron task.
24#[derive(Debug, Serialize)]
25pub struct CronCreateRequest {
26    pub name: String,
27    pub prompt: String,
28    /// Defaults to `"cron"` if omitted.
29    #[serde(skip_serializing_if = "Option::is_none")]
30    pub schedule_type: Option<String>,
31    pub schedule_expr: String,
32    #[serde(skip_serializing_if = "Option::is_none")]
33    pub channel: Option<String>,
34}
35
36/// Request body for updating a cron task (all fields optional).
37#[derive(Debug, Default, Serialize)]
38pub struct CronUpdateRequest {
39    #[serde(skip_serializing_if = "Option::is_none")]
40    pub name: Option<String>,
41    #[serde(skip_serializing_if = "Option::is_none")]
42    pub prompt: Option<String>,
43    #[serde(skip_serializing_if = "Option::is_none")]
44    pub schedule_type: Option<String>,
45    #[serde(skip_serializing_if = "Option::is_none")]
46    pub schedule_expr: Option<String>,
47    #[serde(skip_serializing_if = "Option::is_none")]
48    pub channel: Option<String>,
49}