package incheon.ags.mrb.analysis.vo;

import incheon.ags.mrb.analysis.domain.AnalysisKind;
import incheon.ags.mrb.analysis.domain.AnalysisStatus;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;

import java.time.LocalDateTime;

@Getter
@Setter
public class AnlsHstryJoinVO {
    @Schema(description = "분석 이력 ID")
    Integer anlsHstryId;

    @Schema(description = "유저 ID")
    String userId;

    @Schema(description = "분석 종류")
    AnalysisKind anlsKnd;

    @Schema(description = "분석 상태 코드")
    AnalysisStatus anlsStcd;

    @Schema(description = "분석 상태 메세지")
    String anlsSttsMssage;

    @Schema(description = "분석 시작 시간")
    LocalDateTime dmndTm;

    @Schema(description = "분석 완료 시간")
    LocalDateTime cmptnTm;

    @Schema(description = "사용자 레이어 ID")
    String userLyrId;

    @Schema(description = "분석 소스 레이어 이름")
    String anlsSourcLyrNm;

    @Schema(description = "분석 경계 레이어 이름")
    String anlsBndryLyrNm;

    @Schema(description = "분석 옵션 JSON")
    String anlsOption;

    public void setAnlsStcd(String code) {
        this.anlsStcd = AnalysisStatus.findAnalysisStatus(code);
    }

    public void setAnlsKnd(String value) {
        this.anlsKnd = AnalysisKind.valueOf(value);
    }
}
