use derive_more::Display;
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Deserialize)]
pub struct Task {
pub id: u32,
pub task_id: crate::id::TaskId,
#[serde(rename = "task_name")]
pub name: TaskName,
#[serde(rename = "type")]
pub task_type: TaskType,
pub status: TaskStatus,
pub owner: crate::id::UserId,
pub acknowledged: bool,
pub result: Option<String>,
pub related_document: Option<String>,
}
#[derive(Debug, Display, Clone, Copy, PartialEq, Eq, Hash, Deserialize)]
#[serde(rename_all = "UPPERCASE")]
pub enum TaskStatus {
Failure,
Pending,
Received,
Retry,
Revoked,
Started,
Success,
}
#[derive(Debug, Display, Clone, Copy, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "snake_case")]
pub enum TaskName {
ConsumeFile,
TrainClassifier,
CheckSanity,
IndexOptimize,
}
#[derive(Debug, Display, Clone, Copy, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "snake_case")]
pub enum TaskType {
AutoTask,
ScheduledTask,
ManualTask,
}