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