Skip to main content

stasis/domain/runtime/
thread.rs

1use 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}