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

import com.fasterxml.jackson.annotation.JsonProperty;
import com.its.op.entity.its.cctv.TbCctvCtrlHs;
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("TbCctvCtrlHsDto(CCTV 제어이력)")
public class TbCctvCtrlHsDto implements Serializable {
    private static final long serialVersionUID = 1L;

    @ApiModelProperty("제어 일시")  // N VARCHAR2(14)
    @JsonProperty("ctrl_dt")
    private String ctrlDt;

    @ApiModelProperty("CCTV 제어기 번호")  // N NUMBER(10)
    @JsonProperty("cctv_ctlr_nmbr")
    private Long cctvCtlrNmbr;

    @ApiModelProperty("제어유형")  // N VARCHAR2(3)
    @JsonProperty("ctrl_type")
    private String ctrlType;

    @ApiModelProperty("제어값")  // Y VARCHAR2(30)
    @JsonProperty("ctrl_val")
    private String ctrlVal;

    @ApiModelProperty("제어결과(0:성공,기타:실패)")  // Y NUMBER(1)
    @JsonProperty("ctrl_result")
    private Integer ctrlResult;

    @ApiModelProperty("제어한 사용자ID")  // Y VARCHAR2(20)
    @JsonProperty("user_id")
    private String userId;

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

    @ApiModelProperty("CCTV 명")  // Y VARCHAR(40)
    @JsonProperty("cctv_nm")
    private String cctvNm;

    @ApiModelProperty("제어유형")  // Y VARCHAR(40)
    @JsonProperty("ctrl_type_desc")
    private String ctrlTypeDesc;

    @ApiModelProperty("제어결과설명")  // Y VARCHAR(40)
    @JsonProperty("ctrl_result_desc")
    private String ctrlResultDesc;

    public TbCctvCtrlHs toEntity() {
        return TbCctvCtrlHs.builder()
                .ctrlDt(this.ctrlDt)
                .cctvCtlrNmbr(this.cctvCtlrNmbr)
                .ctrlType(this.ctrlType)
                .ctrlVal(this.ctrlVal)
                .ctrlResult(this.ctrlResult)
                .userId(this.userId)
                .build();
    }

}
