use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct CronSearch {
#[serde(rename = "assistant_id", skip_serializing_if = "Option::is_none")]
pub assistant_id: Option<uuid::Uuid>,
#[serde(rename = "thread_id", skip_serializing_if = "Option::is_none")]
pub thread_id: Option<uuid::Uuid>,
#[serde(rename = "limit", skip_serializing_if = "Option::is_none")]
pub limit: Option<i32>,
#[serde(rename = "offset", skip_serializing_if = "Option::is_none")]
pub offset: Option<i32>,
#[serde(rename = "sort_by", skip_serializing_if = "Option::is_none")]
pub sort_by: Option<SortBy>,
#[serde(rename = "sort_order", skip_serializing_if = "Option::is_none")]
pub sort_order: Option<SortOrder>,
#[serde(rename = "select", skip_serializing_if = "Option::is_none")]
pub select: Option<Vec<Select>>,
}
impl CronSearch {
pub fn new() -> CronSearch {
CronSearch {
assistant_id: None,
thread_id: None,
limit: None,
offset: None,
sort_by: None,
sort_order: None,
select: None,
}
}
}
#[derive(
Clone, Copy, Debug, Default, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize,
)]
pub enum SortBy {
#[serde(rename = "cron_id")]
#[default]
CronId,
#[serde(rename = "assistant_id")]
AssistantId,
#[serde(rename = "thread_id")]
ThreadId,
#[serde(rename = "next_run_date")]
NextRunDate,
#[serde(rename = "end_time")]
EndTime,
#[serde(rename = "created_at")]
CreatedAt,
#[serde(rename = "updated_at")]
UpdatedAt,
}
#[derive(
Clone, Copy, Debug, Default, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize,
)]
pub enum SortOrder {
#[serde(rename = "asc")]
#[default]
Asc,
#[serde(rename = "desc")]
Desc,
}
#[derive(
Clone, Copy, Debug, Default, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize,
)]
pub enum Select {
#[serde(rename = "cron_id")]
#[default]
CronId,
#[serde(rename = "assistant_id")]
AssistantId,
#[serde(rename = "thread_id")]
ThreadId,
#[serde(rename = "on_run_completed")]
OnRunCompleted,
#[serde(rename = "end_time")]
EndTime,
#[serde(rename = "schedule")]
Schedule,
#[serde(rename = "created_at")]
CreatedAt,
#[serde(rename = "updated_at")]
UpdatedAt,
#[serde(rename = "user_id")]
UserId,
#[serde(rename = "payload")]
Payload,
#[serde(rename = "next_run_date")]
NextRunDate,
#[serde(rename = "metadata")]
Metadata,
#[serde(rename = "now")]
Now,
}