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

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;
import java.time.LocalDateTime;

/**
 *  DTO Class
 */
@Data
@Builder
@ApiModel("BitstatusHistoryDto(BIT 상태 이력)")
public class BitStatusHistoryDto implements Serializable {
    private static final long serialVersionUID = 1L;

    @ApiModelProperty("recorddate")  // N DATE(0)
    @JsonProperty("recorddate")
    private String recorddate;

    @ApiModelProperty("recordtimestamp")  // N TIMESTAMP(6)(0)
    @JsonProperty("recordtimestamp")
    private LocalDateTime recordtimestamp;

    @ApiModelProperty("bitid")  // N VARCHAR(10)
    @JsonProperty("bitid")
    private String bitid;

    @ApiModelProperty("temperature")  // Y NUMBER(5,2)
    @JsonProperty("temperature")
    private Double temperature;

    @ApiModelProperty("humidity")  // Y NUMBER(3)
    @JsonProperty("humidity")
    private Integer humidity;

    @ApiModelProperty("fanstatus")  // Y CHAR(1)
    @JsonProperty("fanstatus")
    private String fanstatus;

    @ApiModelProperty("fanopstatus")  // Y CHAR(1)
    @JsonProperty("fanopstatus")
    private String fanopstatus;

    @ApiModelProperty("wcommstatus")  // Y CHAR(1)
    @JsonProperty("wcommstatus")
    private String wcommstatus;

    @ApiModelProperty("wlcommstatus")  // Y CHAR(1)
    @JsonProperty("wlcommstatus")
    private String wlcommstatus;

    @ApiModelProperty("heaterstatus")  // Y CHAR(1)
    @JsonProperty("heaterstatus")
    private String heaterstatus;

    @ApiModelProperty("heateropstatus")  // Y CHAR(1)
    @JsonProperty("heateropstatus")
    private String heateropstatus;

    @ApiModelProperty("camerastatus")  // Y CHAR(1)
    @JsonProperty("camerastatus")
    private String camerastatus;

    @ApiModelProperty("doorstatus")  // Y CHAR(1)
    @JsonProperty("doorstatus")
    private String doorstatus;

    @ApiModelProperty("monitorstatus")  // Y CHAR(1)
    @JsonProperty("monitorstatus")
    private String monitorstatus;

    @ApiModelProperty("memorycapacity")  // Y NUMBER(5)
    @JsonProperty("memorycapacity")
    private Integer memorycapacity;

    @ApiModelProperty("lcdlight")  // Y CHAR(1)
    @JsonProperty("lcdlight")
    private String lcdlight;

    @ApiModelProperty("illumination")  // Y NUMBER(4)
    @JsonProperty("illumination")
    private Integer illumination;

    @ApiModelProperty("soundvolume")  // Y NUMBER(2)
    @JsonProperty("soundvolume")
    private Integer soundvolume;

    // Code Description Field

}
