use sea_orm::entity::prelude::*; use serde::{Deserialize, Serialize}; /// 审计日志实体 — 映射 audit_logs 表。 #[derive(Clone, Debug, PartialEq, DeriveEntityModel, Serialize, Deserialize)] #[sea_orm(table_name = "audit_logs")] pub struct Model { #[sea_orm(primary_key, auto_increment = false)] pub id: Uuid, pub tenant_id: Uuid, pub user_id: Option, pub action: String, pub resource_type: String, pub resource_id: Option, pub old_value: Option, pub new_value: Option, pub ip_address: Option, pub user_agent: Option, pub created_at: DateTimeUtc, /// 哈希链 — 前一条记录的 record_hash pub prev_hash: Option, /// 当前记录的哈希 SHA256(id + action + resource_type + resource_id + created_at + prev_hash) pub record_hash: Option, } #[derive(Copy, Clone, Debug, EnumIter, DeriveRelation)] pub enum Relation {} impl ActiveModelBehavior for ActiveModel {}