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