praxis_persist/models/
db_thread.rs1use serde::{Deserialize, Serialize};
2use chrono::{DateTime, Utc};
3
4#[derive(Debug, Clone, Serialize, Deserialize)]
6pub struct Thread {
7 pub id: String,
8 pub user_id: String,
9 pub created_at: DateTime<Utc>,
10 pub updated_at: DateTime<Utc>,
11 pub metadata: ThreadMetadata,
12 pub last_summary_update: DateTime<Utc>,
13 pub summary: Option<ThreadSummary>,
14}
15
16#[derive(Debug, Clone, Serialize, Deserialize, Default)]
17pub struct ThreadMetadata {
18 pub title: Option<String>,
19 pub tags: Vec<String>,
20}
21
22#[derive(Debug, Clone, Serialize, Deserialize)]
23pub struct ThreadSummary {
24 pub text: String,
25 pub generated_at: DateTime<Utc>,
26 pub total_tokens_before_summary: usize,
27 pub messages_count: usize,
28}
29