package com.mydreamjob.audit; import jakarta.persistence.*; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; import org.springframework.data.annotation.CreatedDate; import org.springframework.data.jpa.domain.support.AuditingEntityListener; import java.time.LocalDateTime; /** * 审计日志实体 */ @Data @Builder @NoArgsConstructor @AllArgsConstructor @Entity @Table(name = "audit_logs") @EntityListeners(AuditingEntityListener.class) public class AuditLog { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @Column(name = "user_id") private Long userId; @Column(name = "action", nullable = false, length = 50) private String action; @Column(name = "entity_type", length = 50) private String entityType; @Column(name = "entity_id") private Long entityId; @Column(name = "details", columnDefinition = "TEXT") private String details; @Column(name = "ip_address", length = 45) private String ipAddress; @Column(name = "user_agent", length = 500) private String userAgent; @Column(name = "request_id", length = 32) private String requestId; @CreatedDate @Column(name = "created_at", nullable = false, updatable = false) private LocalDateTime createdAt; }