package com.its.op.dto.its.cctv;

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;

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

    @ApiModelProperty("CCTV 관리 번호")  // N NUMBER(10)
    @JsonProperty("cctv_ctlr_nmbr")
    private Long cctvCtlrNmbr;

    @ApiModelProperty("갱신 일시")  // Y VARCHAR2(14)
    @JsonProperty("updt_dt")
    private String updtDt;

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

    @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("Video Input 여부('VDI')")  // Y VARCHAR2(7)
    @JsonProperty("video_input")
    private String videoInput;

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

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

    @ApiModelProperty("PAN")  // Y NUMBER(6)
    @JsonProperty("pan")
    private Integer pan;

    @ApiModelProperty("TILT")  // Y NUMBER(6)
    @JsonProperty("tilt")
    private Integer tilt;

    @ApiModelProperty("확대/축소범위")  // Y NUMBER(6)
    @JsonProperty("zoom")
    private Integer zoom;

    @ApiModelProperty("FOCUS")  // Y NUMBER(6)
    @JsonProperty("focus")
    private Integer focus;

    // Code Description Field
    @ApiModelProperty("통신 상태 코드 설명")
    @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("VIDEO INPUT 상태 코드('VDI') 설명")
    @JsonProperty("video_input_desc")    // HETR_STTS_CD
    private String videoInputDesc;

    @ApiModelProperty("CCTV 제어기 ID")  // Y VARCHAR(30)
    @JsonProperty("cctv_ctlr_id")
    private String cctvCtlrId;

    @ApiModelProperty("설치 위치 명")  // Y VARCHAR(40)
    @JsonProperty("istl_lctn_nm")
    private String istlLctnNm;

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

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

}
