package cn.nianxx.thhotel.platform.audit.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.time.LocalDateTime;

/**
 * 平台管理审计实体。只记录管理写操作摘要，不保存密码、token 或 secret。
 */
@TableName("platform_admin_audit_log")
public class PlatformAdminAuditLogEntity {

    /** 管理审计内部 ID。 */
    @TableId(type = IdType.ASSIGN_ID)
    private Long id;
    /** 操作用户内部 ID。 */
    private Long actorUserId;
    /** 操作用户登录名摘要。 */
    private String actorUsername;
    /** 操作用户展示名摘要。 */
    private String actorDisplayName;
    /** 操作对象类型：USER、ROLE、MENU、HOTEL 等。 */
    private String targetType;
    /** 操作对象稳定 ID。 */
    private String targetId;
    /** 操作类型。 */
    private String action;
    /** 变更前摘要 JSON。 */
    private String beforeSnapshotJson;
    /** 变更后摘要 JSON。 */
    private String afterSnapshotJson;
    /** 操作发生 UTC 时间。 */
    private LocalDateTime occurredAt;

    public Long getId() { return id; }
    public void setId(Long id) { this.id = id; }
    public Long getActorUserId() { return actorUserId; }
    public void setActorUserId(Long actorUserId) { this.actorUserId = actorUserId; }
    public String getActorUsername() { return actorUsername; }
    public void setActorUsername(String actorUsername) { this.actorUsername = actorUsername; }
    public String getActorDisplayName() { return actorDisplayName; }
    public void setActorDisplayName(String actorDisplayName) { this.actorDisplayName = actorDisplayName; }
    public String getTargetType() { return targetType; }
    public void setTargetType(String targetType) { this.targetType = targetType; }
    public String getTargetId() { return targetId; }
    public void setTargetId(String targetId) { this.targetId = targetId; }
    public String getAction() { return action; }
    public void setAction(String action) { this.action = action; }
    public String getBeforeSnapshotJson() { return beforeSnapshotJson; }
    public void setBeforeSnapshotJson(String beforeSnapshotJson) { this.beforeSnapshotJson = beforeSnapshotJson; }
    public String getAfterSnapshotJson() { return afterSnapshotJson; }
    public void setAfterSnapshotJson(String afterSnapshotJson) { this.afterSnapshotJson = afterSnapshotJson; }
    public LocalDateTime getOccurredAt() { return occurredAt; }
    public void setOccurredAt(LocalDateTime occurredAt) { this.occurredAt = occurredAt; }
}
