package com.its.api.its.model.dto.road;

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;

/**
 * 도로 소통상황 DTO Class
 */
@Data
@Builder
@ApiModel("TbRoadTrafDto(도로 소통상황)")
public class TbRoadTrafDto implements Serializable {
    private static final long serialVersionUID = 1L;

    @ApiModelProperty("도로 ID")  // N NUMBER(10)
    @JsonProperty("road_id")
    private Long roadId;

    @ApiModelProperty("가공 일시")  // Y VARCHAR(14)
    @JsonProperty("prcn_dt")
    private String prcnDt;

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

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

    @ApiModelProperty("패턴 속도")  // Y NUMBER(3)
    @JsonProperty("ptrn_sped")
    private Integer ptrnSped;

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

    @ApiModelProperty("통행 시간")  // Y NUMBER(6)
    @JsonProperty("trvl_hh")
    private Integer trvlHh;

    @ApiModelProperty("소통 등급 코드")  // Y VARCHAR(7)
    @JsonProperty("cmtr_grad_cd")
    private String cmtrGradCd;

    @ApiModelProperty("데이터 개수")  // Y NUMBER(3)
    @JsonProperty("data_num")
    private Integer dataNum;

    // Code Description Field
    @ApiModelProperty("도로 명")
    @JsonProperty("road_name")
    private String roadName;
    @ApiModelProperty("시점 명")
    @JsonProperty("strt_nm")
    private String strtNm;
    @ApiModelProperty("종점 명")
    @JsonProperty("end_nm")
    private String endNm;
    @ApiModelProperty("방향 코드")
    @JsonProperty("drct_cd")
    private String drctCd;
    @ApiModelProperty("결측여부")
    @JsonProperty("miss_yn")
    private String missYn;

    @ApiModelProperty("방향 설명")
    @JsonProperty("drct_cd_desc")
    private String drctDesc;
    @ApiModelProperty("소통 등급 코드 설명")
    @JsonProperty("cmtr_grad_desc")
    private String cmtrGradDesc;

}
