package com.its.op.dto.its.vms;

import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;

import javax.validation.constraints.Size;
import java.io.Serializable;

/**
 * Vms 전광판 On/Off 정보 DTO Class
 */
@Data
@Builder
@ApiModel("VmsOnOffTimeDto(전광판 시각 설정)")
public class VmsOnOffTimeDto implements Serializable {
    private static final long serialVersionUID = 1L;

    @ApiModelProperty("전광판 ON 시각-HH24MI")
    @JsonProperty("panl_on_time")
    private String panlOnTime;

    @ApiModelProperty("전광판 OFF 시각-HH24MI")
    @JsonProperty("panl_off_time")
    private String panlOffTime;

    @ApiModelProperty("작업 결과")
    @JsonProperty("result")
    private Integer result;

    @ApiModel("VmsOnOffTimeSaveReq(전광판 시각 저장)")
    @Getter
    @Setter
    @ToString
    @NoArgsConstructor//(access = AccessLevel.PROTECTED)
    public static class VmsOnOffTimeSaveReq {

        @ApiModelProperty("전광판 ON 시각-HH24MI")
        @JsonProperty("panl_on_time")
        @Size(min=4, max=4)
        private String panlOnTime;

        @ApiModelProperty("전광판 OFF 시각-HH24MI")
        @JsonProperty("panl_off_time")
        @Size(min=4, max=4)
        private String panlOffTime;

        @Builder
        public VmsOnOffTimeSaveReq(String panl_on_time, String panl_off_time) {
            this.panlOnTime = panl_on_time;
            this.panlOffTime = panl_off_time;
        }
    }

    @ApiModel("VmsOnOffTimeTempReq(전광판 On/Off 시각 저장-TEMP)")
    @Getter
    @Setter
    @ToString
    @NoArgsConstructor//(access = AccessLevel.PROTECTED)
    public static class VmsOnOffTimeTempReq {

        @ApiModelProperty("전광판 ON 시각-HH24MI")
        @JsonProperty("panl_on_time")
        @Size(min=4, max=4)
        private String panlOnTime;

        @ApiModelProperty("전광판 OFF 시각-HH24MI")
        @JsonProperty("panl_off_time")
        @Size(min=4, max=4)
        private String panlOffTime;

        @Builder
        public VmsOnOffTimeTempReq(String panl_on_time, String panl_off_time) {
            this.panlOnTime = panl_on_time;
            this.panlOffTime = panl_off_time;
        }
    }

}
