orvanta_api/models/
copilot_conversation_message.rs1use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
15pub struct CopilotConversationMessage {
16 #[serde(rename = "id")]
17 pub id: uuid::Uuid,
18 #[serde(rename = "conversation_id")]
19 pub conversation_id: uuid::Uuid,
20 #[serde(rename = "created_seq")]
22 pub created_seq: i64,
23 #[serde(rename = "channel")]
25 pub channel: Channel,
26 #[serde(rename = "role")]
27 pub role: Role,
28 #[serde(rename = "payload", deserialize_with = "Option::deserialize")]
30 pub payload: Option<serde_json::Value>,
31 #[serde(rename = "size_bytes")]
32 pub size_bytes: i32,
33 #[serde(rename = "created_at")]
34 pub created_at: String,
35}
36
37impl CopilotConversationMessage {
38 pub fn new(id: uuid::Uuid, conversation_id: uuid::Uuid, created_seq: i64, channel: Channel, role: Role, payload: Option<serde_json::Value>, size_bytes: i32, created_at: String) -> CopilotConversationMessage {
39 CopilotConversationMessage {
40 id,
41 conversation_id,
42 created_seq,
43 channel,
44 role,
45 payload,
46 size_bytes,
47 created_at,
48 }
49 }
50}
51#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
53pub enum Channel {
54 #[serde(rename = "actual")]
55 Actual,
56 #[serde(rename = "display")]
57 Display,
58}
59
60impl Default for Channel {
61 fn default() -> Channel {
62 Self::Actual
63 }
64}
65#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
67pub enum Role {
68 #[serde(rename = "user")]
69 User,
70 #[serde(rename = "assistant")]
71 Assistant,
72 #[serde(rename = "system")]
73 System,
74 #[serde(rename = "tool")]
75 Tool,
76 #[serde(rename = "developer")]
77 Developer,
78 #[serde(rename = "function")]
79 Function,
80}
81
82impl Default for Role {
83 fn default() -> Role {
84 Self::User
85 }
86}
87