Files
hms/crates/erp-ai/src/state.rs
iven 57f33dd726 feat(ai): Copilot 评分引擎 + Handler + 路由 + 权限码
- scoring.rs: 混合评分 (calculate_risk) + RiskScore/MatchedRule 结构
- engine.rs: CopilotEngine 协调规则评估和评分
- risk_service.rs: 风险计算 + UPSERT 快照 + 规则加载
- insight_service.rs: 洞察 CRUD + 过期清理
- 3 个 Handler: insight/risk/rule,7 个 API 端点
- 5 个权限码: copilot.insights.list/manage, copilot.risk.view, copilot.rules.list/manage
- AiState 扩展 risk_service + insight_service
2026-05-12 12:14:16 +08:00

32 lines
1.0 KiB
Rust

use std::sync::Arc;
use erp_core::events::EventBus;
use erp_core::health_provider::HealthDataProvider;
use sea_orm::DatabaseConnection;
use crate::provider::registry::ProviderRegistry;
use crate::service::analysis::AnalysisService;
use crate::service::cache::CacheService;
use crate::service::insight_service::InsightService;
use crate::service::prompt::PromptService;
use crate::service::quota::QuotaService;
use crate::service::risk_service::RiskService;
use crate::service::suggestion::SuggestionService;
use crate::service::usage::UsageService;
#[derive(Clone)]
pub struct AiState {
pub db: DatabaseConnection,
pub event_bus: EventBus,
pub analysis: Arc<AnalysisService>,
pub prompt: Arc<PromptService>,
pub usage: Arc<UsageService>,
pub suggestion: Arc<SuggestionService>,
pub health_provider: Arc<dyn HealthDataProvider>,
pub provider_registry: Arc<ProviderRegistry>,
pub quota: Arc<QuotaService>,
pub cache: Arc<CacheService>,
pub risk_service: Arc<RiskService>,
pub insight_service: Arc<InsightService>,
}