stasis/domain/runtime/
thread.rs1use chrono::{DateTime, Utc};
2use serde::{Deserialize, Serialize};
3
4#[derive(Clone, Debug, Eq, PartialEq)]
5pub struct NewThread {
6 pub thread_id: String,
7 pub parent_thread_id: Option<String>,
8 pub branch_label: Option<String>,
9 pub created_at: DateTime<Utc>,
10}
11
12#[derive(Clone, Debug, Eq, PartialEq)]
13pub struct ThreadSnapshot {
14 pub thread_id: String,
15 pub parent_thread_id: Option<String>,
16 pub branch_label: Option<String>,
17 pub created_at: DateTime<Utc>,
18 pub updated_at: DateTime<Utc>,
19}
20
21#[derive(Clone, Debug, Eq, PartialEq)]
22pub struct NewThreadEvent {
23 pub event_id: String,
24 pub thread_id: String,
25 pub event_kind: String,
26 pub payload_ref: String,
27 pub occurred_at: DateTime<Utc>,
28}
29
30#[derive(Clone, Debug, Eq, PartialEq)]
31pub struct ThreadEvent {
32 pub event_id: String,
33 pub thread_id: String,
34 pub event_kind: String,
35 pub payload_ref: String,
36 pub occurred_at: DateTime<Utc>,
37}
38
39#[derive(Clone, Debug, Eq, PartialEq, Serialize, Deserialize)]
40pub struct ThreadMergeMetadata {
41 pub parent_thread_id: String,
42 pub branch_thread_ids: Vec<String>,
43 pub merge_strategy: String,
44 pub merged_at: DateTime<Utc>,
45}