45 lines
1.1 KiB
Java
45 lines
1.1 KiB
Java
package ru.soune.no_copy.entity;
|
|||
|
|
|
||
|
|
import jakarta.persistence.*;
|
||
|
|
import lombok.*;
|
||
|
|
import org.springframework.data.annotation.CreatedDate;
|
||
|
|
import org.springframework.data.jpa.domain.support.AuditingEntityListener;
|
||
|
|
|
||
|
|
import java.time.LocalDateTime;
|
||
|
|
|
||
|
|
@Entity
|
||
|
|
@Table(name = "user_actions")
|
||
|
|
@Getter
|
||
|
|
@Setter
|
||
|
|
@NoArgsConstructor
|
||
|
|
@AllArgsConstructor
|
||
|
|
@ToString
|
||
|
|
@EntityListeners(AuditingEntityListener.class)
|
||
|
|
public class UserAction {
|
||
|
|
|
||
|
|
@Id
|
||
|
|
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
||
|
|
private Long actionId;
|
||
|
|
|
||
|
|
@ManyToOne(fetch = FetchType.LAZY)
|
||
|
|
@JoinColumn(name = "user_id", nullable = false)
|
||
|
|
@ToString.Exclude
|
||
|
|
private User user;
|
||
|
|
|
||
|
|
@Column(name = "action", nullable = false, length = 100)
|
||
|
|
private String action;
|
||
|
|
|
||
|
|
@Column(name = "details", columnDefinition = "TEXT")
|
||
|
|
private String details;
|
||
|
|
|
||
|
|
@Column(name = "ip_address", length = 45)
|
||
|
|
private String ipAddress;
|
||
|
|
|
||
|
|
@Column(name = "user_agent", columnDefinition = "TEXT")
|
||
|
|
private String userAgent;
|
||
|
|
|
||
|
|
@CreatedDate
|
||
|
|
@Column(name = "created_at", nullable = false, updatable = false)
|
||
|
|
private LocalDateTime createdAt;
|
||
|
|
}
|