Skip to main content

Module hooks

Module hooks 

Source
Expand description

钩子系统(Hooks)— 软删除 + 多租户

对应设计文档 3.8 节「钩子系统」。

§核心概念

  • HookContext:钩子执行上下文,包含当前租户、操作人、时间戳等
  • Hookable:可钩选的 Model,支持 before/after insert/update/delete 6 个生命周期
  • SoftDelete:软删除 trait,标记删除而非物理删除
  • GlobalScope:全局查询作用域,自动过滤(如自动排除软删除行、自动追加租户条件)
  • TenantScope:多租户全局作用域,自动追加 tenant_id = ? 条件

§使用示例

use sz_orm_model::hooks::{HookContext, Hookable, SoftDelete, TenantScope, GlobalScope};

// 1. 定义带软删除+多租户的 Model
// 2. 查询时自动过滤 deleted_at IS NULL AND tenant_id = ?
// 3. 删除时自动 UPDATE SET deleted_at = NOW() 而非 DELETE

Structs§

HookContext
钩子执行上下文
HookDispatcher
钩子执行辅助工具
HookRegistry
钩子注册表
ScopeRegistry
全局作用域注册表
SoftDeleteScope
软删除全局作用域
TenantScope
多租户全局作用域

Enums§

HookEvent
钩子事件类型

Traits§

GlobalScope
全局查询作用域
Hookable
可钩选 Model trait
SoftDelete
软删除 trait
TenantModel
多租户 Model trait

Type Aliases§

HookFn
运行时钩子函数类型
HookResult
钩子执行结果