From 9b8307fbba6550f671b0422179ccd35f30656b7b Mon Sep 17 00:00:00 2001 From: iven Date: Fri, 1 May 2026 08:05:42 +0800 Subject: [PATCH] =?UTF-8?q?feat(ai):=20=E6=B7=BB=E5=8A=A0=20ai=5Fsuggestio?= =?UTF-8?q?n=20=E5=92=8C=20ai=5Frisk=5Fthreshold=20SeaORM=20Entity?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- crates/erp-ai/src/entity/ai_risk_threshold.rs | 25 ++++++++++++++++ crates/erp-ai/src/entity/ai_suggestion.rs | 30 +++++++++++++++++++ crates/erp-ai/src/entity/mod.rs | 2 ++ 3 files changed, 57 insertions(+) create mode 100644 crates/erp-ai/src/entity/ai_risk_threshold.rs create mode 100644 crates/erp-ai/src/entity/ai_suggestion.rs diff --git a/crates/erp-ai/src/entity/ai_risk_threshold.rs b/crates/erp-ai/src/entity/ai_risk_threshold.rs new file mode 100644 index 0000000..bf38de0 --- /dev/null +++ b/crates/erp-ai/src/entity/ai_risk_threshold.rs @@ -0,0 +1,25 @@ +use sea_orm::entity::prelude::*; +use serde::{Deserialize, Serialize}; + +#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Serialize, Deserialize)] +#[sea_orm(table_name = "ai_risk_threshold")] +pub struct Model { + #[sea_orm(primary_key, auto_increment = false)] + pub id: Uuid, + pub tenant_id: Uuid, + pub metric_name: String, + pub low_threshold: Option, + pub medium_threshold: Option, + pub high_threshold: Option, + pub created_at: DateTimeUtc, + pub updated_at: DateTimeUtc, + pub created_by: Option, + pub updated_by: Option, + pub deleted_at: Option, + pub version_lock: i32, +} + +#[derive(Copy, Clone, Debug, EnumIter, DeriveRelation)] +pub enum Relation {} + +impl ActiveModelBehavior for ActiveModel {} diff --git a/crates/erp-ai/src/entity/ai_suggestion.rs b/crates/erp-ai/src/entity/ai_suggestion.rs new file mode 100644 index 0000000..c63842b --- /dev/null +++ b/crates/erp-ai/src/entity/ai_suggestion.rs @@ -0,0 +1,30 @@ +use sea_orm::entity::prelude::*; +use serde::{Deserialize, Serialize}; + +#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Serialize, Deserialize)] +#[sea_orm(table_name = "ai_suggestion")] +pub struct Model { + #[sea_orm(primary_key, auto_increment = false)] + pub id: Uuid, + pub tenant_id: Uuid, + pub analysis_id: Uuid, + pub suggestion_type: String, + pub risk_level: String, + pub params: serde_json::Value, + pub status: String, + pub workflow_instance_id: Option, + pub action_result: Option, + pub baseline_snapshot: Option, + pub reanalysis_id: Option, + pub created_at: DateTimeUtc, + pub updated_at: DateTimeUtc, + pub created_by: Option, + pub updated_by: Option, + pub deleted_at: Option, + pub version_lock: i32, +} + +#[derive(Copy, Clone, Debug, EnumIter, DeriveRelation)] +pub enum Relation {} + +impl ActiveModelBehavior for ActiveModel {} diff --git a/crates/erp-ai/src/entity/mod.rs b/crates/erp-ai/src/entity/mod.rs index 4294af5..ab9af5e 100644 --- a/crates/erp-ai/src/entity/mod.rs +++ b/crates/erp-ai/src/entity/mod.rs @@ -1,3 +1,5 @@ pub mod ai_analysis; pub mod ai_prompt; +pub mod ai_risk_threshold; +pub mod ai_suggestion; pub mod ai_usage;