package com.its.op.dto.its.scrs;

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("TbScSgnlCtlrPhaseDto(신호 제어기 현시 정보)")
public class TbScSgnlCtlrPhaseDto implements Serializable {
    private static final long serialVersionUID = 1L;

    @ApiModelProperty("신호 교차로 번호")  // N NUMBER(4)
    @JsonProperty("sgnl_ixr_nmbr")
    private Integer sgnlIxrNmbr;

    @ApiModelProperty("제어모드(0: TRC, 1: TOD, 2: MAN)")  // Y NUMBER(1)
    @JsonProperty("cntl_mode")
    private Integer cntlMode;

    @ApiModelProperty("제어상태(0: 온라인, 1: 오프라인, 2: 트랜스, 3: 통신장애)")  // Y NUMBER(1)
    @JsonProperty("cntl_stts")
    private Integer cntlStts;

    @ApiModelProperty("특수제어(0: 없음, 1: 점멸, 2: 소등, 3: 수동, 4: 감응)")  // Y NUMBER(2)
    @JsonProperty("spcl_cntl")
    private Integer spclCntl;

    @ApiModelProperty("A링 1현시 코드")  // Y NUMBER(7)
    @JsonProperty("aring_1phas_cd")
    private Integer aring1phasCd;

    @ApiModelProperty("A링 2현시 코드")  // Y NUMBER(7)
    @JsonProperty("aring_2phas_cd")
    private Integer aring2phasCd;

    @ApiModelProperty("A링 3현시 코드")  // Y NUMBER(7)
    @JsonProperty("aring_3phas_cd")
    private Integer aring3phasCd;

    @ApiModelProperty("A링 4현시 코드")  // Y NUMBER(7)
    @JsonProperty("aring_4phas_cd")
    private Integer aring4phasCd;

    @ApiModelProperty("A링 5현시 코드")  // Y NUMBER(7)
    @JsonProperty("aring_5phas_cd")
    private Integer aring5phasCd;

    @ApiModelProperty("A링 6현시 코드")  // Y NUMBER(7)
    @JsonProperty("aring_6phas_cd")
    private Integer aring6phasCd;

    @ApiModelProperty("A링 7현시 코드")  // Y NUMBER(7)
    @JsonProperty("aring_7phas_cd")
    private Integer aring7phasCd;

    @ApiModelProperty("A링 8현시 코드")  // Y NUMBER(7)
    @JsonProperty("aring_8phas_cd")
    private Integer aring8phasCd;

    @ApiModelProperty("B링 1현시 코드")  // Y NUMBER(7)
    @JsonProperty("bring_1phas_cd")
    private Integer bring1phasCd;

    @ApiModelProperty("B링 2현시 코드")  // Y NUMBER(7)
    @JsonProperty("bring_2phas_cd")
    private Integer bring2phasCd;

    @ApiModelProperty("B링 3현시 코드")  // Y NUMBER(7)
    @JsonProperty("bring_3phas_cd")
    private Integer bring3phasCd;

    @ApiModelProperty("B링 4현시 코드")  // Y NUMBER(7)
    @JsonProperty("bring_4phas_cd")
    private Integer bring4phasCd;

    @ApiModelProperty("B링 5현시 코드")  // Y NUMBER(7)
    @JsonProperty("bring_5phas_cd")
    private Integer bring5phasCd;

    @ApiModelProperty("B링 6현시 코드")  // Y NUMBER(7)
    @JsonProperty("bring_6phas_cd")
    private Integer bring6phasCd;

    @ApiModelProperty("B링 7현시 코드")  // Y NUMBER(7)
    @JsonProperty("bring_7phas_cd")
    private Integer bring7phasCd;

    @ApiModelProperty("B링 8현시 코드")  // Y NUMBER(7)
    @JsonProperty("bring_8phas_cd")
    private Integer bring8phasCd;

}
