package com.its.op.dto.its.ifsc;

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("TbReptCngsSectTrafDto(반복 정체 구간-소통정보)")
public class TbReptCngsSectTrafDto implements Serializable {
    private static final long serialVersionUID = 1L;

    @ApiModelProperty("정보제공구간 ID")  // N NUMBER(10)
    @JsonProperty("ifsc_id")
    private Long ifscId;

    @ApiModelProperty("통계 년월")  // N VARCHAR(6)
    @JsonProperty("stat_ym")
    private String statYm;

    @ApiModelProperty("요일 유형 코드")  // N VARCHAR(7)
    @JsonProperty("day_type_cd")
    private String dayTypeCd;

    @ApiModelProperty("혼잡 시작 시분")  // N VARCHAR(4)
    @JsonProperty("cnfs_strt_hm")
    private String cnfsStrtHm;

    @ApiModelProperty("혼잡 종료 시분")  // Y VARCHAR(4)
    @JsonProperty("cnfs_end_hm")
    private String cnfsEndHm;

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

    @ApiModelProperty("평균 통행 시간")  // Y NUMBER(6)
    @JsonProperty("avrg_trvl_hh")
    private Integer avrgTrvlHh;

    @ApiModelProperty("확정 여부")  // Y CHAR(1)
    @JsonProperty("dcsn_yn")
    private String dcsnYn;

    @ApiModelProperty("생성 일자")  // Y VARCHAR(8)
    @JsonProperty("crtn_ymd")
    private String crtnYmd;

    @ApiModelProperty("반복 정체 구간 원본 코드")  // Y VARCHAR(7)
    @JsonProperty("rept_cngs_sect_orgn_cd")
    private String reptCngsSectOrgnCd;

    // Code Description Field
    @ApiModelProperty("정보제공구간 명")  // Y VARCHAR(100)
    @JsonProperty("ifsc_nm")
    private String ifscNm;

    @ApiModelProperty("시점 명")  // Y VARCHAR(100)
    @JsonProperty("strt_nm")
    private String strtNm;

    @ApiModelProperty("종점 명")  // Y VARCHAR(100)
    @JsonProperty("end_nm")
    private String endNm;

    @ApiModelProperty("요일 유형 코드 설명")
    @JsonProperty("day_type_desc")    // DAY_TYPE_CD
    private String dayTypeDesc;

    @ApiModelProperty("반복 정체 구간 원본 코드 설명")
    @JsonProperty("rept_cngs_sect_orgn_desc")    // REPT_CNGS_SECT_ORGN_CD
    private String reptCngsSectOrgnDesc;

    /**
     * 메인 지도화면에서 반복정체구간 정보 호출할 경우 설정되는 값임.
     */
    @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(6)
    @JsonProperty("trvl_hh")
    private Integer trvlHh;

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

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

}
