package com.emotion.entity; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler; import com.emotion.common.BaseEntity; import lombok.AllArgsConstructor; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; import lombok.experimental.SuperBuilder; import java.time.LocalDateTime; import java.util.Map; /** * Consent and revocation audit record for user data usage. */ @Data @EqualsAndHashCode(callSuper = true) @SuperBuilder @NoArgsConstructor @AllArgsConstructor @TableName(value = "t_user_consent_log", autoResultMap = true) public class UserConsentLog extends BaseEntity { @TableField("user_id") private String userId; @TableField("platform") private String platform; @TableField("consent_type") private String consentType; @TableField("consent_version") private String consentVersion; @TableField("scope") private String scope; @TableField("purpose") private String purpose; @TableField("status") private String status; @TableField("granted_at") private LocalDateTime grantedAt; @TableField("revoked_at") private LocalDateTime revokedAt; @TableField("client_ip") private String clientIp; @TableField(value = "device_info", typeHandler = JacksonTypeHandler.class) private Map deviceInfo; }