package com.tsi.navi.dto;

import com.tsi.navi.dto.enums.eLightsStatus;
import com.tsi.navi.dto.enums.eLightsType;
import com.tsi.navi.dto.enums.eTimeReliability;

import lombok.AllArgsConstructor;
import lombok.Data;

@Data
@AllArgsConstructor
public class CpuStatusDTO {
    public int a;       //eLightsType lightsType;               /* 7 ~ 4, 신호등 정보, ■ 미지정(0), 직진(1), 좌회전(2), 보행자(3), 자전거(4), 우회전(5), 버스(6), 유턴(7) */
    public int b;       //eTimeReliability timeReliability;     /* 7, 시간 정보 신뢰성, ■ 고정신호시간(0), 가변신호시간(1) */
    public boolean c;   //readyPedestrianSignal;                /* 6, 보행자(푸쉬 또는 자동검지), ■ 없음(0), 버튼 눌림 or 자동검지(1) */
    public boolean d;   //unProtectedSignal;                    /* 3, 비보호 상태, ■ 신호등 정보 유턴/좌회전에 대한 비보호 여부, ■ 비보호 아님(0), 비보호(1) */
    public int e;       //eLightsStatus lightsStatus;           /* 2 ~ 0, 신호등 상태, ■ 소등(0), 적색점등(1), 황색점등(2), 녹색점등(3), 적색점멸(4), 황색점멸(5), 녹색점멸(6) */
    public int f;       //totalSeconds;                         /* 표출 시간, ■ 초 */
    public int g;       //remainingSeconds;                     /* 잔여 시간, ■ 초 */
    public int h;       //directionCode;                        /* 방향 코드, ■ 출력지정 테이블에 지정된 방향코드 */

    public CpuStatusDTO() {

    }

    public String toString() {
        return "CpuStatusDTO(lightsType=" + eLightsType.getByValue(this.getA()) + ", timeReliability=" + eTimeReliability.getByValue(this.getB()) + ", readyPedestrianSignal=" + this.isC() + ", unProtectedSignal=" + this.isD() + ", lightsStatus=" + eLightsStatus.getByValue(this.getE()) + ", totalSeconds=" + this.getF() + ", remainingSeconds=" + this.getG() + ", directionCode=" + this.getH() + ")";
    }

}
