package com.its.op.dto.its.rse;

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;

/**
 * RSE 상태 현황 DTO Class
 */
@Data
@Builder
@ApiModel("TbRseCtlrSttsDto(RSE 상태 현황)")
public class TbRseCtlrSttsDto implements Serializable {
    private static final long serialVersionUID = 1L;

    @ApiModelProperty("RSE 제어기 번호")  // N NUMBER(10)
    @JsonProperty("rse_ctlr_nmbr")
    private Long rseCtlrNmbr;

    @ApiModelProperty("수집 일시")  // N VARCHAR2(14)
    @JsonProperty("updt_dt")
    private String updtDt;

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

    @ApiModelProperty("제어 장치 상태")  // Y VARCHAR2(7)
    @JsonProperty("cntl_devc_stts")
    private String cntlDevcStts;

    @ApiModelProperty("안테나 1 상태")  // Y VARCHAR2(7)
    @JsonProperty("atn_1_stts")
    private String atn1Stts;

    @ApiModelProperty("안테나 2 상태")  // Y VARCHAR2(7)
    @JsonProperty("atn_2_stts")
    private String atn2Stts;

    @ApiModelProperty("안테나 3 상태")  // Y VARCHAR2(7)
    @JsonProperty("atn_3_stts")
    private String atn3Stts;

    @ApiModelProperty("안테나 4 상태")  // Y VARCHAR2(7)
    @JsonProperty("atn_4_stts")
    private String atn4Stts;

    @ApiModelProperty("안테나 1 동작")  // Y VARCHAR2(7)
    @JsonProperty("atn_1_mtns")
    private String atn1Mtns;

    @ApiModelProperty("안테나 2 동작")  // Y VARCHAR2(7)
    @JsonProperty("atn_2_mtns")
    private String atn2Mtns;

    @ApiModelProperty("안테나 3 동작")  // Y VARCHAR2(7)
    @JsonProperty("atn_3_mtns")
    private String atn3Mtns;

    @ApiModelProperty("안테나 4 동작")  // Y VARCHAR2(7)
    @JsonProperty("atn_4_mtns")
    private String atn4Mtns;

    @ApiModelProperty("함체 문 상태 코드('CDS')-앞문/뒷문상태가 모두닫힌경우 닫힘")  // Y VARCHAR2(7)
    @JsonProperty("cbox_door_stts_cd")
    private String cboxDoorSttsCd;

    @ApiModelProperty("앞문 상태 코드('CDS')")  // Y VARCHAR2(7)
    @JsonProperty("front_door_stts_cd")
    private String frontDoorSttsCd;

    @ApiModelProperty("뒷문 상태 코드('CDS')")  // Y VARCHAR2(7)
    @JsonProperty("back_door_stts_cd")
    private String backDoorSttsCd;

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

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

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

    @ApiModelProperty("함체 습도")  // Y NUMBER(3)
    @JsonProperty("cbox_hmdt")
    private Integer cboxHmdt;

    @ApiModelProperty("RTU 상태 코드('RTU')")  // Y VARCHAR2(7)
    @JsonProperty("rtu_stts_cd")
    private String rtuSttsCd;

    // Code Description Field
    @ApiModelProperty("RSE 제어기 ID")  // Y VARCHAR2(30)
    @Column(name = "RSE_CTLR_ID", length = 30)
    private String rseCtlrId;

    @ApiModelProperty("RSE 명칭")  // Y VARCHAR2(40)
    @Column(name = "RSE_NM", length = 40)
    private String rseNm;

    @ApiModelProperty("설치 위치 명")  // Y VARCHAR2(40)
    @Column(name = "ISTL_LCTN_NM", length = 40)
    private String istlLctnNm;

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

    @ApiModelProperty("함체 문 상태 코드('CDS')-앞문/뒷문상태가 모두닫힌경우 닫힘 설명")
    @JsonProperty("cbox_door_stts_desc")    // CBOX_DOOR_STTS_CD
    private String cboxDoorSttsDesc;

    @ApiModelProperty("앞문 상태 코드('CDS') 설명")
    @JsonProperty("front_door_stts_desc")    // FRONT_DOOR_STTS_CD
    private String frontDoorSttsDesc;

    @ApiModelProperty("뒷문 상태 코드('CDS') 설명")
    @JsonProperty("back_door_stts_desc")    // BACK_DOOR_STTS_CD
    private String backDoorSttsDesc;

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

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

    @ApiModelProperty("RTU 상태 코드('RTU') 설명")
    @JsonProperty("rtu_stts_desc")    // RTU_STTS_CD
    private String rtuSttsDesc;

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

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


}
