package com.its.op.dto.its.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("TbVdsDtctClctDto(VDS 검지기 원시 수집)")
public class TbVdsDtctClctDto implements Serializable {
    private static final long serialVersionUID = 1L;

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

    @ApiModelProperty("VDS 검지기 번호")  // N NUMBER(10)
    @JsonProperty("vds_dtct_nmbr")
    private Long vdsDtctNmbr;

    @ApiModelProperty("교통정보수집주기")  // Y NUMBER(3)
    @JsonProperty("traf_clct_cycl")
    private Integer trafClctCycl;

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

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

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

    @ApiModelProperty("평균 차량 길이(dm : decimal meter, 1 dm = 1/10 m)")  // Y NUMBER(3)
    @JsonProperty("avrg_lngt")
    private Integer avrgLngt;

    @ApiModelProperty("평균 차두시간")  // Y NUMBER(3)
    @JsonProperty("hdwy")
    private Integer hdwy;

    @ApiModelProperty("공간 점유율")  // Y NUMBER(5,2)
    @JsonProperty("spce_ocpy_rate")
    private Double spceOcpyRate;

    @ApiModelProperty("공간 평균속도")  // Y NUMBER(3)
    @JsonProperty("spce_avrg_sped")
    private Integer spceAvrgSped;

    // 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;

}
