package research.loghunter.entity;

import jakarta.persistence.*;
import lombok.*;
import java.time.LocalDateTime;

@Entity
@Table(name = "scan_history")
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class ScanHistory {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "server_id", nullable = false)
    private Server server;

    @Column(nullable = false)
    private LocalDateTime startedAt;  // 분석 시작 시간

    private LocalDateTime finishedAt;  // 분석 종료 시간

    @Column(nullable = false)
    private String status;  // RUNNING, SUCCESS, FAILED

    private Integer filesScanned;  // 스캔한 파일 수

    private Integer errorsFound;  // 발견된 에러 수

    @Column(length = 2000)
    private String errorMessage;  // 실패 시 에러 메시지

    @PrePersist
    protected void onCreate() {
        if (startedAt == null) startedAt = LocalDateTime.now();
        if (status == null) status = "RUNNING";
        if (filesScanned == null) filesScanned = 0;
        if (errorsFound == null) errorsFound = 0;
    }
}
