spatio_sdk/models/
conversation.rs1use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
16pub struct Conversation {
17 #[serde(rename = "id")]
18 pub id: String,
19 #[serde(rename = "user_id")]
20 pub user_id: String,
21 #[serde(rename = "title")]
22 pub title: String,
23 #[serde(rename = "context", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
25 pub context: Option<Option<String>>,
26 #[serde(rename = "cwd", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
27 pub cwd: Option<Option<String>>,
28 #[serde(rename = "session_id", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
29 pub session_id: Option<Option<String>>,
30 #[serde(rename = "pinned", skip_serializing_if = "Option::is_none")]
31 pub pinned: Option<bool>,
32 #[serde(rename = "last_message_at", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
33 pub last_message_at: Option<Option<chrono::DateTime<chrono::FixedOffset>>>,
34 #[serde(rename = "message_count", skip_serializing_if = "Option::is_none")]
35 pub message_count: Option<i32>,
36 #[serde(rename = "is_active", skip_serializing_if = "Option::is_none")]
37 pub is_active: Option<bool>,
38 #[serde(rename = "metadata", skip_serializing_if = "Option::is_none")]
39 pub metadata: Option<std::collections::HashMap<String, serde_json::Value>>,
40 #[serde(rename = "created_at", skip_serializing_if = "Option::is_none")]
41 pub created_at: Option<chrono::DateTime<chrono::FixedOffset>>,
42 #[serde(rename = "updated_at", skip_serializing_if = "Option::is_none")]
43 pub updated_at: Option<chrono::DateTime<chrono::FixedOffset>>,
44}
45
46impl Conversation {
47 pub fn new(id: String, user_id: String, title: String) -> Conversation {
49 Conversation {
50 id,
51 user_id,
52 title,
53 context: None,
54 cwd: None,
55 session_id: None,
56 pinned: None,
57 last_message_at: None,
58 message_count: None,
59 is_active: None,
60 metadata: None,
61 created_at: None,
62 updated_at: None,
63 }
64 }
65}
66