1use derive_more::Display;
2use serde::{Deserialize, Serialize};
3
4#[derive(Debug, Clone, Deserialize)]
6pub struct Task {
7 pub id: u32,
8
9 pub task_id: crate::id::TaskId,
11
12 #[serde(rename = "task_name")]
14 pub name: TaskName,
15
16 #[serde(rename = "type")]
18 pub task_type: TaskType,
19
20 pub status: TaskStatus,
22
23 pub owner: crate::id::UserId,
24
25 pub acknowledged: bool,
26 pub result: Option<String>,
27 pub related_document: Option<String>,
28}
29
30#[derive(Debug, Display, Clone, Copy, PartialEq, Eq, Hash, Deserialize)]
32#[serde(rename_all = "UPPERCASE")]
33pub enum TaskStatus {
34 Failure,
35 Pending,
36 Received,
37 Retry,
38 Revoked,
39 Started,
40 Success,
41}
42
43#[derive(Debug, Display, Clone, Copy, PartialEq, Eq, Hash, Deserialize, Serialize)]
45#[serde(rename_all = "snake_case")]
46pub enum TaskName {
47 ConsumeFile,
48 TrainClassifier,
49 CheckSanity,
50 IndexOptimize,
51}
52
53#[derive(Debug, Display, Clone, Copy, PartialEq, Eq, Hash, Deserialize, Serialize)]
55#[serde(rename_all = "snake_case")]
56pub enum TaskType {
57 AutoTask,
58 ScheduledTask,
59 ManualTask,
60}