printobserver_types/
session.rs1use schemars::JsonSchema;
4use serde::{Deserialize, Serialize};
5
6use crate::ids::PrintId;
7use crate::timestamp::Timestamp;
8
9#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize, JsonSchema)]
11#[serde(rename_all = "snake_case", deny_unknown_fields)]
12pub enum SessionPhase {
13 Created,
15 Continued,
17}
18
19#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, JsonSchema)]
21#[serde(deny_unknown_fields)]
22pub struct SupervisionSession {
23 pub print_id: PrintId,
25 pub session_name: String,
27 pub harness_identity: String,
29 pub created_at: Timestamp,
31 pub last_turn_at: Timestamp,
33 #[serde(default, skip_serializing_if = "Option::is_none")]
35 pub closed_at: Option<Timestamp>,
36 #[serde(default, skip_serializing_if = "Option::is_none")]
38 pub close_reason: Option<String>,
39}