diff --git a/src/attendance/mod.rs b/src/attendance/mod.rs index 8f8c2d69..0ca441ba 100644 --- a/src/attendance/mod.rs +++ b/src/attendance/mod.rs @@ -312,7 +312,7 @@ async fn save_message_to_history( message_history::role.eq(if sender_clone == "user" { 1 } else { 2 }), message_history::content_encrypted.eq(content_clone), message_history::message_type.eq(1), - message_history::message_index.eq(0i64), + message_history::message_index.eq(0i32), message_history::created_at.eq(diesel::dsl::now), )) .execute(&mut db_conn) diff --git a/src/core/session/mod.rs b/src/core/session/mod.rs index 6cdf2fa0..38d6695c 100644 --- a/src/core/session/mod.rs +++ b/src/core/session/mod.rs @@ -235,11 +235,11 @@ impl SessionManager { msg_type: i32, ) -> Result<(), Box> { use crate::core::shared::models::message_history::dsl::*; - let next_index = message_history + let next_index: i32 = message_history .filter(session_id.eq(sess_id)) .count() .get_result::(&mut self.conn) - .unwrap_or(0); + .unwrap_or(0) as i32; diesel::insert_into(message_history) .values(( id.eq(Uuid::new_v4()), @@ -346,7 +346,7 @@ impl SessionManager { .filter(session_id.eq(sess_id)) .order(message_index.asc()) .select((role, content_encrypted, message_index)) - .load::<(i32, String, i64)>(&mut self.conn)?; + .load::<(i32, String, i32)>(&mut self.conn)?; // Get last N message pairs to ensure user/assistant alternation // Each "turn" is 2 messages (user + assistant), so we need 2 * limit_val messages diff --git a/src/core/shared/models/core.rs b/src/core/shared/models/core.rs index f3e7a8b9..49a9a88e 100644 --- a/src/core/shared/models/core.rs +++ b/src/core/shared/models/core.rs @@ -136,7 +136,7 @@ pub struct MessageHistory { pub role: i32, pub content_encrypted: String, pub message_type: i32, - pub message_index: i64, + pub message_index: i32, pub created_at: DateTime, } diff --git a/src/core/shared/schema/core.rs b/src/core/shared/schema/core.rs index 87c7791c..7912ef7a 100644 --- a/src/core/shared/schema/core.rs +++ b/src/core/shared/schema/core.rs @@ -125,7 +125,7 @@ diesel::table! { role -> Int4, content_encrypted -> Text, message_type -> Int4, - message_index -> Int8, + message_index -> Int4, created_at -> Timestamptz, } } diff --git a/src/whatsapp/mod.rs b/src/whatsapp/mod.rs index 4c315da3..cbac0261 100644 --- a/src/whatsapp/mod.rs +++ b/src/whatsapp/mod.rs @@ -1410,7 +1410,7 @@ async fn save_message_to_history( message_history::role.eq(if sender_clone == "user" { 1 } else { 2 }), message_history::content_encrypted.eq(content_clone), message_history::message_type.eq(1), - message_history::message_index.eq(0i64), + message_history::message_index.eq(0i32), message_history::created_at.eq(diesel::dsl::now), )) .execute(&mut db_conn)