package erp:plugin; /// 宿主暴露给插件的 API(插件 import 这些函数) interface host-api { /// 插入记录(宿主自动注入 tenant_id, id, created_at 等标准字段) db-insert: func(entity: string, data: list) -> result, string>; /// 查询记录(自动注入 tenant_id 过滤 + 软删除过滤) db-query: func(entity: string, filter: list, pagination: list) -> result, string>; /// 更新记录(自动检查 version 乐观锁) db-update: func(entity: string, id: string, data: list, version: s64) -> result, string>; /// 软删除记录 db-delete: func(entity: string, id: string) -> result<_, string>; /// 发布领域事件 event-publish: func(event-type: string, payload: list) -> result<_, string>; /// 读取系统配置 config-get: func(key: string) -> result, string>; /// 写日志(自动关联 tenant_id + plugin_id) log-write: func(level: string, message: string); /// 获取当前用户信息 current-user: func() -> result, string>; /// 检查当前用户权限 check-permission: func(permission: string) -> result; } /// 插件导出的 API(宿主调用这些函数) interface plugin-api { /// 插件初始化(加载时调用一次) init: func() -> result<_, string>; /// 租户创建时调用 on-tenant-created: func(tenant-id: string) -> result<_, string>; /// 处理订阅的事件 handle-event: func(event-type: string, payload: list) -> result<_, string>; } world plugin-world { import host-api; export plugin-api; }