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 javax.validation.constraints.Size;
import java.io.Serializable;

/**
 * VDS 검지기 원시 수집 DTO Class
 */
@Data
@Builder
@ApiModel("TbVdsDtctRawClctDto(VDS 검지기 원시 수집)")
public class TbVdsDtctRawClctDto implements Serializable {
    private static final long serialVersionUID = 1L;

    @ApiModelProperty("검지기 번호")  // N VARCHAR(8)
    @JsonProperty("dtct_nmbr")
    private String dtctNmbr;

    @ApiModelProperty("발생 일시")  // N VARCHAR(14)
    @JsonProperty("ocrr_dt")
    private String ocrrDt;

    @ApiModelProperty("시스템 종류 구분")  // N VARCHAR(1)
    @JsonProperty("syst_kind_dvsn")
    private String systKindDvsn;

    @ApiModelProperty("교통량")  // Y NUMBER(6)
    @JsonProperty("tfvl")
    private Integer tfvl;

    @ApiModelProperty("평균 점유 율")  // Y NUMBER(6,2)
    @JsonProperty("avrg_ocpy_rate")
    private Double avrgOcpyRate;

    @ApiModelProperty("속도")  // Y NUMBER(3)
    @JsonProperty("sped")
    private Integer sped;

    @ApiModelProperty("차두시간")  // Y VARCHAR(6)
    @JsonProperty("hdwy")
    private String hdwy;

    @ApiModelProperty("평균 길이")  // Y NUMBER(5,1)
    @JsonProperty("avrg_lngt")
    private Double avrgLngt;

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

    @ApiModelProperty("검지기 유형 코드, Nullable = Y, VARCHAR(7)")  // Y VARCHAR(7)
    @JsonProperty("dtct_type_cd")
    @Size(min=1, max=7)
    private String dtctTypeCd;

    @ApiModelProperty("검지기 유형 코드 설명")
    @JsonProperty("dtct_type_desc")    // DTCT_TYPE_CD
    private String dtctTypeDesc;

}
