package jnpf.audit.model; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; import java.util.Date; import java.util.List; /** * 审计事件 DTO:字段与 {@link jnpf.bizcommon.audit.entity.AuditEventEntity} 同名同型, * id/createdAt 除外(DB 生成字段,不由调用方提供)。 * *
toBuilder 供 SDK 做不可变拷贝;@NoArgsConstructor 是硬性规则 L004——
* 本类要经 JSON/MQ 反序列化,缺了会在 fastjson/jackson 处踩雷。
*/
@Data
@Builder(toBuilder = true)
@NoArgsConstructor
@AllArgsConstructor
public class AuditEventDTO {
private String clientEventId;
private String operationId;
private Date eventTime;
private String tenantId;
private String operatorId;
private String operatorName;
private String operatorOrgId;
private String appName;
private String bizModule;
private String parentBizModule;
/** Request context only; the receiver verifies these before deriving parentBizModule. */
private String menuId;
private String parentMenuId;
private String ip;
private String ipRegion;
private String browser;
private String os;
private String requestUri;
private String eventType;
private String actionCode;
private String actionLabel;
private Integer sourceLayer;
private String targetTable;
private String targetId;
private String bizType;
private String bizCode;
private String fieldDiffs;
private String extra;
private String dataSnapshot;
private String reason;
private String recordTitle;
private String entryType;
private String entryId;
private String entryName;
private String prevHash;
/**
* 本次成功业务操作使用的电子签名 id,仅供审计接收端回读签名凭证并补充签名事件。
* 该字段不映射 audit_events,也不会作为业务事件详情返回。
*/
private String relatedSignId;
/**
* Structured related signatures. The legacy relatedSignId remains supported as a single
* signature for existing data-interface callers.
*/
private List