package com.its.api.its.model.dto.vms;

import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Builder;
import lombok.Data;

import javax.persistence.Column;
import java.io.Serializable;

/**
 * VMS 상태 이력 DTO Class
 */
@Data
@Builder
@ApiModel("TbVmsSttsHsDto(VMS 상태 이력)")
public class TbVmsSttsHsDto implements Serializable {
    private static final long serialVersionUID = 1L;


    @ApiModelProperty("VMS 제어기 번호")  // N NUMBER(10)
    @JsonProperty("vms_ctlr_nmbr")
    private Long vmsCtlrNmbr;

    @ApiModelProperty("생성 일시")  // Y VARCHAR(14)
    @JsonProperty("crtn_dt")
    private String crtnDt;

    @ApiModelProperty("통신 상태 코드")  // Y VARCHAR(7)
    @JsonProperty("cmnc_stts_cd")
    private String cmncSttsCd;

    @ApiModelProperty("전원 상태 코드")  // Y VARCHAR(7)
    @JsonProperty("pwer_stts_cd")
    private String pwerSttsCd;

    @ApiModelProperty("모듈 상태 코드")
    @JsonProperty("modl_stts_cd")
    private String modlSttsCd;

    @ApiModelProperty("함체문 열림 상태 코드")  // Y VARCHAR(7)
    @JsonProperty("cbox_door_stts_cd")
    private String cboxDoorSttsCd;

    @ApiModelProperty("팬 상태 코드")  // Y VARCHAR(7)
    @JsonProperty("fan_stts_cd")
    private String fanSttsCd;

    @ApiModelProperty("히터 상태 코드")  // Y VARCHAR(7)
    @JsonProperty("hetr_stts_cd")
    private String hetrSttsCd;

    @ApiModelProperty("함체 온도")  // Y NUMBER(3)
    @JsonProperty("cbox_tmpr")
    private Integer cboxTmpr;

    @ApiModelProperty("휘도값")  // Y NUMBER(3)
    @JsonProperty("brgh_val")
    private Integer brghVal;

    @ApiModelProperty("모듈개별상태(가로->세로순서, 0:정상,1:오류)")  // Y VARCHAR(200)
    @JsonProperty("modl_stts")
    private String modlStts;

    @ApiModelProperty("모듈전원개별상태(가로->세로순서, 0:켜짐,1:꺼짐)")  // Y VARCHAR(10)
    @JsonProperty("pwer_stts")
    private String pwerStts;

    // Code Description Field
    @ApiModelProperty("VMS 제어기 ID")  // Y VARCHAR(30)
    @Column(name = "VMS_CTLR_ID", length = 30)
    private String vmsCtlrId;

    @ApiModelProperty("VMS 명")  // Y VARCHAR(40)
    @Column(name = "VMS_NM", length = 40)
    private String vmsNm;

    @ApiModelProperty("통신 상태 코드 설명")
    @JsonProperty("cmnc_stts_desc")
    private String cmncSttsDesc;

    @ApiModelProperty("전원 상태 코드 설명")
    @JsonProperty("pwer_stts_desc")
    private String pwerSttsDesc;

    @ApiModelProperty("모듈개별상태 설명")
    @JsonProperty("modl_stts_desc")
    private String modlSttsDesc;

    @ApiModelProperty("함체문 열림 상태 코드 설명")
    @JsonProperty("cbox_door_stts_desc")
    private String cboxDoorSttsDesc;

    @ApiModelProperty("팬 상태 코드 설명")
    @JsonProperty("fan_stts_desc")    // FAN_STTS_CD
    private String fanSttsDesc;

    @ApiModelProperty("히터 상태 코드 설명")
    @JsonProperty("hetr_stts_desc")    // HETR_STTS_CD
    private String hetrSttsDesc;

}
