Expand description
钩子系统(Hooks)— 软删除 + 多租户
对应设计文档 3.8 节「钩子系统」。
§核心概念
- HookContext:钩子执行上下文,包含当前租户、操作人、时间戳等
- Hookable:可钩选的 Model,支持 before/after insert/update/delete 6 个生命周期
- SoftDelete:软删除 trait,标记删除而非物理删除
- GlobalScope:全局查询作用域,自动过滤(如自动排除软删除行、自动追加租户条件)
- TenantScope:多租户全局作用域,自动追加
tenant_id = ?条件
§使用示例
use sz_orm_core::hooks::{HookContext, Hookable, SoftDelete, TenantScope, GlobalScope};
// 1. 定义带软删除+多租户的 Model
// 2. 查询时自动过滤 deleted_at IS NULL AND tenant_id = ?
// 3. 删除时自动 UPDATE SET deleted_at = NOW() 而非 DELETEStructs§
- Hook
Context - 钩子执行上下文
- Hook
Dispatcher - 钩子执行辅助工具
- Hook
Registry - 钩子注册表
- Scope
Registry - 全局作用域注册表
- Soft
Delete Scope - 软删除全局作用域
- Tenant
Scope - 多租户全局作用域
Enums§
- Hook
Event - 钩子事件类型
Traits§
- Global
Scope - 全局查询作用域
- Hookable
- 可钩选 Model trait
- Soft
Delete - 软删除 trait
- Tenant
Model - 多租户 Model trait
Type Aliases§
- HookFn
- 运行时钩子函数类型
- Hook
Result - 钩子执行结果