package com.its.web.dto.traffic;

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

import java.util.List;

@Data
@NoArgsConstructor
@AllArgsConstructor
@ApiModel("TbVmsCtlrDto(TB_VMS_CTLR 테이블 DTO)")
public class TbVmsCtlrDto {
    @ApiModelProperty("VMS 제어기 번호")
    @JsonProperty("vms_ctlr_nmbr")
    private Long vmsCtlrNmbr;

    @ApiModelProperty("VMS ID")
    @JsonProperty("vms_id")
    private String vmsId;

    @ApiModelProperty("VMS 제어기 ID")
    @JsonProperty("vms_ctlr_id")
    private String vmsCtlrId;

    @ApiModelProperty("VMS 명")
    @JsonProperty("vms_nm")
    private String vmsNm;

    @ApiModelProperty("VMS 제어기 아이피")
    @JsonProperty("vms_ctlr_ip")
    private String vmsCtlrIp;

    @ApiModelProperty("VMS 용도 유형 코드")
    @JsonProperty("vms_usag_type_cd")
    private String vmsUsagTypeCd;

    @ApiModelProperty("VMS 형식 유형 코드")
    @JsonProperty("vms_frm_type_cd")
    private String vmsFrmTypeCd;

    @ApiModelProperty("VMS 유형 코드")
    @JsonProperty("vms_type_cd")
    private String vmsTypeCd;

    @ApiModelProperty("VMS 모듈 유형 코드")
    @JsonProperty("vms_modl_type_cd")
    private String vmsModlTypeCd;

    @ApiModelProperty("VMS 통신 포트")
    @JsonProperty("vms_cmnc_port")
    private String vmsCmncPort;

    @ApiModelProperty("운영 모드")
    @JsonProperty("oper_mode")
    private String operMode;

    @ApiModelProperty("VMS 통신 오류 기본 값")
    @JsonProperty("vms_cmnc_err_bass_val")
    private Integer vmsCmncErrBassVal;

    @ApiModelProperty("VMS 야간 휘도 단계")
    @JsonProperty("vms_nght_brgh_step")
    private Integer vmsNghtBrghStep;

    @ApiModelProperty("VMS 주간 휘도 단계")
    @JsonProperty("vms_week_brgh_step")
    private Integer vmsWeekBrghStep;

    @ApiModelProperty("VMS 표출면 변경 주기")
    @JsonProperty("vms_phse_chng_cycl")
    private Integer vmsPhseChngCycl;

    @ApiModelProperty("VMS 모듈 오류 율")
    @JsonProperty("vms_modl_err_rate")
    private Integer vmsModlErrRate;

    @ApiModelProperty("통신장애 SLOT 번호")
    @JsonProperty("cmncfail_slot_nmbr")
    private Integer cmncfailSlotNmbr;

    @ApiModelProperty("전원 장애 SLOT 번호")
    @JsonProperty("pwer_fail_slot_nmbr")
    private Integer pwerFailSlotNmbr;

    @ApiModelProperty("삭제 여부")
    @JsonProperty("del_yn")
    private String delYn;

    @ApiModelProperty("소통정보 연계 여부")
    @JsonProperty("cmtrinfr_cnct_yn")
    private String cmtrinfrCnctYn;

    @ApiModelProperty("기상정보 연계 여부")
    @JsonProperty("wthrinfr_cnct_yn")
    private String wthrinfrCnctYn;

    @ApiModelProperty("환경정보 연계 여부")
    @JsonProperty("envrinfr_cnct_yn")
    private String envrinfrCnctYn;

    @ApiModelProperty("VMS 최대 표출면 개수")
    @JsonProperty("vms_max_phse_num")
    private Integer vmsMaxPhseNum;

    @ApiModelProperty("최초 등록자 번호")
    @JsonProperty("frst_regr_nmbr")
    private String frstRegrNmbr;

    @ApiModelProperty("최초 등록 일시")
    @JsonProperty("frst_rgst_dt")
    private String frstRgstDt;

    @ApiModelProperty("최종 수정자 번호")
    @JsonProperty("last_crpr_nmbr")
    private String lastCrprNmbr;

    @ApiModelProperty("최종 수정 일시")
    @JsonProperty("last_crct_dt")
    private String lastCrctDt;

    @ApiModelProperty("전광판 ON TIME")
    @JsonProperty("panl_on_time")
    private String panlOnTime;

    @ApiModelProperty("전광판 OFF TIME")
    @JsonProperty("panl_off_time")
    private String panlOffTime;

    @ApiModelProperty("전광판 전원 모드")
    @JsonProperty("panl_pwer_mode")
    private String panlPwerMode;

    @ApiModelProperty("휘도 모드")
    @JsonProperty("brgh_mode")
    private String brghMode;

    @ApiModelProperty("웹 카메라 아이피")
    @JsonProperty("web_cmra_ip")
    private String webCmraIp;

    @ApiModelProperty("X 좌표")
    @JsonProperty("x_crdn")
    private Double xCrdn;

    @ApiModelProperty("Y 좌표")
    @JsonProperty("y_crdn")
    private Double yCrdn;

    @ApiModelProperty("설치 위치 명")
    @JsonProperty("istl_lctn_nm")
    private String istlLctnNm;

    @ApiModelProperty("교통 전략 사용 여부")
    @JsonProperty("trfc_strg_use_yn")
    private String trfcStrgUseYn;

    @ApiModelProperty("VMS 위치 정보제공구간 ID")
    @JsonProperty("vms_loc_ifsc_id")
    private Long vmsLocIfscId;

    @ApiModelProperty("팬 동작 온도")
    @JsonProperty("fan_mtns_tmpr")
    private Double fanMtnsTmpr;

    @ApiModelProperty("히터 동작 온도")
    @JsonProperty("hetr_mtns_tmpr")
    private Double hetrMtnsTmpr;

    @ApiModelProperty("FAN 동작모드(0x00:꺼짐,0x01:켜짐,0x02:자동,0x09:알수없음)")
    @JsonProperty("fan_mode")
    private Integer fanMode;

    @ApiModelProperty("히터 동작모드(0x00:꺼짐,0x01:켜짐,0x02:자동,0x09:알수없음)")
    @JsonProperty("hetr_mode")
    private Integer hetrMode;

    @ApiModelProperty("휘도 현재 단계(0~100)")
    @JsonProperty("brgh_curr_step")
    private Integer brghCurrStep;

    @ApiModelProperty("웹 카메라 포트")
    @JsonProperty("web_cmra_port")
    private String webCmraPort;

    @ApiModelProperty("웹 카메라 ID")
    @JsonProperty("web_cmra_id")
    private String webCmraId;

    @ApiModelProperty("웹 카메라 암호")
    @JsonProperty("web_cmra_pwd")
    private String webCmraPwd;

    @ApiModelProperty("스트리밍 세션 명")
    @JsonProperty("strm_sesn_nm")
    private String strmSesnNm;

    @ApiModelProperty("웹카메라 회사")
    @JsonProperty("web_cmra_cmpy")
    private String webCmraCmpy;

    @ApiModelProperty("웹카메라 모델")
    @JsonProperty("web_cmra_mdl")
    private String webCmraMdl;

    @ApiModelProperty("설치주소")
    @JsonProperty("istl_lctn_addr")
    private String istlLctnAddr;

    @ApiModelProperty("full_strm_sesn_nm")
    @JsonProperty("full_strm_sesn_nm")
    private String fullStrmSesnNm;

    @ApiModelProperty("프로토콜버전")
    @JsonProperty("protocol_ver")
    private Integer protocolVer;

    @ApiModelProperty("웹카메라 프로토콜")
    @JsonProperty("web_cmra_protocol")
    private String webCmraProtocol;

    @ApiModelProperty("법정동 코드")
    @JsonProperty("area_code")
    private String areaCode;

    @ApiModelProperty("VMS 표출 메시지 정보")
    @JsonProperty("msg")
    private List<VmsDsplPhaseDto> msg;
}
