package com.utic.center.utic.traf.server.dto;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;

@Data
@NoArgsConstructor//(access = AccessLevel.PROTECTED)
@AllArgsConstructor
public class BatchJobInfoDto implements Serializable {
    private static final long serialVersionUID = 1L;

    private String startTime;  // 작업 시작 시각
    private String endTime;    // 작업 종료 시각

    private long elapsedTime; // 작업 소요 시간 (밀리초 단위)
    private long asnEtlpTime; // ASN 작업 소요 시간 (밀리초 단위)
    private long collectTime; // 수집 작업 소요 시간 (밀리초 단위)
    private long fusionTime;  // 융합 작업 소요 시간 (밀리초 단위)
    private long missingTime; // 결손 작업 소요 시간 (밀리초 단위)
    private long saveCacheTime; // 캐시 저장 작업 소요 시간 (밀리초 단위)
    private long saveCenterTime; // 센터 저장 작업 소요 시간 (밀리초 단위)
    private long saveTrafficTime; // 교통정보 저장 작업 소요 시간 (밀리초 단위)
    private long saveDwdbTime;   // DWDB 저장 작업 소요 시간 (밀리초 단위)
    private long prepareTime;    // 가공 준비 작업 소요 시간 (밀리초 단위)
    private long prcsAfterTime;  // 가공 후 작업 소요 시간 (밀리초 단위)

    public BatchJobInfoDto(String startTime) {
        this.startTime = startTime;
        this.endTime = startTime; // 초기화 시 시작 시간과 동일하게 설정
        this.elapsedTime = 0; // 작업 소요 시간 (밀리초 단위)
        this.asnEtlpTime = 0; // ASN 작업 소요 시간 (밀리초 단위)
        this.collectTime = 0; // 수집 작업 소요 시간 (밀리초 단위)
        this.fusionTime = 0;  // 융합 작업 소요 시간 (밀리초 단위)
        this.missingTime = 0; // 결손 작업 소요 시간 (밀리초 단위)
        this.saveCacheTime = 0; // 캐시 저장 작업 소요 시간 (밀리초 단위)
        this.saveCenterTime = 0; // 센터 저장 작업 소요 시간 (밀리초 단위)
        this.saveTrafficTime = 0; // 교통정보 저장 작업 소요 시간 (밀리초 단위)
        this.saveDwdbTime = 0;   // DWDB 저장 작업 소요 시간 (밀리초 단위)
        this.prepareTime = 0;    // 가공 준비 작업 소요 시간 (밀리초 단위)
        this.prcsAfterTime = 0; // 가공 후 작업 소요 시간 (밀리초 단위)
    }
}
