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

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

import java.io.Serializable;

/**
 * VDS 제어기 상태 DTO Class
 */
@Data
@Builder
@ApiModel("TbVdsCtlrSttsDto(VDS 제어기 상태)")
public class TbVdsCtlrSttsDto implements Serializable {
    private static final long serialVersionUID = 1L;

    @ApiModelProperty("제어기 관리 번호")  // N VARCHAR(20)
    @JsonProperty("ctlr_mngm_nmbr")
    private String ctlrMngmNmbr;

    @ApiModelProperty("관리 번호")  // N NUMBER(10)
    @JsonProperty("nmbr")
    private String nmbr;

    @ApiModelProperty("통신 상태 코드(0:정상, 1:통신이상, 2:알수없음)")  // Y VARCHAR(7)
    @JsonProperty("cmnc_stts_cd")
    private String cmncSttsCd;

    @ApiModelProperty("출력 전원 상태 코드")  // Y VARCHAR(7)
    @JsonProperty("prnt_pwer_stts_cd")
    private String prntPwerSttsCd;

    @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 VARCHAR(14)
    @JsonProperty("updt_dt")
    private String updtDt;

    @ApiModelProperty("부 제어기 값")  // Y NUMBER(3)
    @JsonProperty("sub_ctlr_val")
    private Integer subCtlrVal;

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

    @ApiModelProperty("입력 전압")  // Y NUMBER(3)
    @JsonProperty("inpt_volt")
    private Integer inptVolt;

    @ApiModelProperty("출력 전압")  // Y NUMBER(3)
    @JsonProperty("prnt_volt")
    private Integer prntVolt;

    // Code Description Field
    @ApiModelProperty("통신 상태 코드 설명")
    @JsonProperty("cmnc_stts_desc")    // CMNC_STTS_CD
    private String cmncSttsDesc;

    @ApiModelProperty("출력 전원 상태 코드 설명")
    @JsonProperty("prnt_pwer_stts_desc")    // PRNT_PWER_STTS_CD
    private String prntPwerSttsDesc;

    @ApiModelProperty("함체 문 상태 코드 설명")
    @JsonProperty("cbox_door_stts_desc")    // CBOX_DOOR_STTS_CD
    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;

    @ApiModelProperty("VDS 제어기 ID")
    @JsonProperty("vds_ctlr_id")
    private String vdsCtlrId;
    @ApiModelProperty("VDS 제어기 명")
    @JsonProperty("vds_nm")
    private String vdsNm;

    @ApiModelProperty("상태정보결측설명")
    @JsonProperty("miss_stts_yn")
    private String missSttsYn;

    @ApiModelProperty("수집건수")
    @JsonProperty("coll_cnt")
    private Integer collCnt;

}
