journallib/dto/
scenario_section.rs

1use postgres_types::{FromSql, ToSql};
2use serde::{Deserialize, Serialize};
3use serde_json;
4use uuid::Uuid;
5
6#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, FromSql, ToSql)]
7#[serde(rename_all = "camelCase")]
8pub struct TargetObject {
9    #[serde(skip_serializing_if = "Option::is_none")]
10    pub form_request: Option<Uuid>,
11    #[serde(skip_serializing_if = "Option::is_none")]
12    pub article: Option<String>,
13    #[serde(skip_serializing_if = "Option::is_none")]
14    pub task: Option<Uuid>,
15    #[serde(skip_serializing_if = "Option::is_none")]
16    pub videos: Option<Vec<String>>,
17    #[serde(skip_serializing_if = "Option::is_none")]
18    pub pictures: Option<Vec<String>>,
19    #[serde(skip_serializing_if = "Option::is_none")]
20    pub file: Option<Vec<String>>,
21    #[serde(skip_serializing_if = "Option::is_none")]
22    pub polyglot_text: Option<serde_json::Value>,
23    #[serde(skip_serializing_if = "Option::is_none")]
24    pub polyglot_image: Option<serde_json::Value>,
25    #[serde(skip_serializing_if = "Option::is_none")]
26    pub robotics: Option<serde_json::Value>,
27    #[serde(skip_serializing_if = "Option::is_none")]
28    pub entity_id: Option<Uuid>,
29    #[serde(skip_serializing_if = "Option::is_none")]
30    pub level: Option<i32>,
31    #[serde(skip_serializing_if = "Option::is_none")]
32    pub briefing: Option<Uuid>,
33}
34
35#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, FromSql, ToSql)]
36#[serde(rename_all = "camelCase")]
37pub struct ScenarioSection {
38    #[serde(skip_serializing_if = "Option::is_none")]
39    pub id: Option<Uuid>,
40    #[serde(skip_serializing_if = "Option::is_none")]
41    pub scenario: Option<Uuid>,
42    #[serde(skip_serializing_if = "Option::is_none")]
43    pub target_object: Option<TargetObject>,
44    #[serde(skip_serializing_if = "Option::is_none")]
45    pub types: Option<String>,
46    #[serde(skip_serializing_if = "Option::is_none")]
47    pub name: Option<String>,
48    #[serde(rename = "type")]
49    #[serde(skip_serializing_if = "Option::is_none")]
50    pub section_type: Option<String>,
51    #[serde(skip_serializing_if = "Option::is_none")]
52    pub estimated_duration: Option<i32>,
53    #[serde(skip_serializing_if = "Option::is_none")]
54    pub intended_usage: Option<String>,
55    #[serde(skip_serializing_if = "Option::is_none")]
56    pub student_visibility: Option<String>,
57    #[serde(skip_serializing_if = "Option::is_none")]
58    pub comment: Option<String>,
59    #[serde(skip_serializing_if = "Option::is_none")]
60    pub status: Option<String>,
61    #[serde(skip_serializing_if = "Option::is_none")]
62    pub students_completed: Option<Vec<Uuid>>,
63    #[serde(skip_serializing_if = "Option::is_none")]
64    pub removed: Option<bool>,
65}
66
67#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, FromSql, ToSql)]
68#[serde(rename_all = "camelCase")]
69pub struct ScenarioSections(pub Vec<ScenarioSection>);