package com.walkguide.entity; import com.walkguide.enums.ActivityLogType; import jakarta.persistence.*; import lombok.*; import java.time.LocalDateTime; @Entity @Table(name = "activity_logs") @Data @Builder @NoArgsConstructor @AllArgsConstructor public class ActivityLog { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "user_id", nullable = false) private User user; @Enumerated(EnumType.STRING) @Column(name = "log_type", nullable = false) private ActivityLogType logType; @Column(columnDefinition = "TEXT") private String description; // JSON string untuk metadata extra (lat/lng, obstacle label, dll) @Column(columnDefinition = "TEXT") private String metadata; @Column(name = "created_at", nullable = false, updatable = false) private LocalDateTime createdAt; @PrePersist protected void onCreate() { createdAt = LocalDateTime.now(); } }