use crate::entity::ai_suggestion_feedback; use erp_core::error::AppResult; use sea_orm::{ActiveModelTrait, ColumnTrait, EntityTrait, QueryFilter, Set}; use uuid::Uuid; pub struct SuggestionFeedbackService; impl SuggestionFeedbackService { pub async fn submit_feedback( db: &sea_orm::DatabaseConnection, tenant_id: Uuid, suggestion_id: Uuid, user_id: Uuid, action: String, feedback_text: Option, ) -> AppResult { let id = Uuid::now_v7(); let now = chrono::Utc::now(); let model = ai_suggestion_feedback::ActiveModel { id: Set(id), tenant_id: Set(tenant_id), suggestion_id: Set(suggestion_id), user_id: Set(user_id), action: Set(action), feedback_text: Set(feedback_text), created_at: Set(now), }; model.insert(db).await?; Ok(id) } pub async fn list_feedback( db: &sea_orm::DatabaseConnection, tenant_id: Uuid, suggestion_id: Uuid, ) -> AppResult> { let items = ai_suggestion_feedback::Entity::find() .filter(ai_suggestion_feedback::Column::TenantId.eq(tenant_id)) .filter(ai_suggestion_feedback::Column::SuggestionId.eq(suggestion_id)) .all(db) .await?; Ok(items) } }