use chrono::{DateTime, Utc}; use serde::{Deserialize, Serialize}; /// Represents a message stored in our database #[derive(Debug, Clone, Serialize, Deserialize)] pub struct Message { pub id: i64, pub chat_db_rowid: i64, pub text: Option, pub timestamp: Option>, pub is_from_me: bool, pub created_at: DateTime, } /// Represents a message embedding (full message vector) #[derive(Debug, Clone)] pub struct MessageEmbedding { pub id: i64, pub message_id: i64, pub embedding: Vec, pub model_name: String, pub created_at: DateTime, } /// Represents a word embedding #[derive(Debug, Clone)] pub struct WordEmbedding { pub id: i64, pub word: String, pub embedding: Vec, pub model_name: String, pub created_at: DateTime, } /// Represents an emotion classification for a message #[derive(Debug, Clone, Serialize, Deserialize)] pub struct Emotion { pub id: i64, pub message_id: i64, pub emotion: String, pub confidence: f64, pub model_version: String, pub created_at: DateTime, pub updated_at: DateTime, } /// Represents an emotion training sample #[derive(Debug, Clone, Serialize, Deserialize)] pub struct EmotionTrainingSample { pub id: i64, pub message_id: Option, pub text: String, pub expected_emotion: String, pub actual_emotion: Option, pub confidence: Option, pub is_validated: bool, pub notes: Option, pub created_at: DateTime, pub updated_at: DateTime, }