package com.sw.mes.outside.dto;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import java.util.Date;
import java.util.Map;

@Data
public class SendDeviceEapSignalDto {
    /**
     * 开炉
     */
    public static final String OPEN_FURNACE = "OpenFurnace";
    /**
     * 抽真空
     */
    public static final String VACUUM_PUMPING = "VacuumPumping";
    /**
     * 熔料
     */
    public static final String MOLTEN_MATERIAL = "MoltenMaterial";
    /**
     * 取段结晶
     */
    public static final String CLOSE_METHOD = "SegmentedCrystallization";
    /**
     * 取段稳温
     */
    public static final String SEGMENTED_STABLE_TEMPERATURE = "SegmentedStableTemperature";
    /**
     * 停炉
     */
    public static final String SHUTDOWN_FURNACE = "ShutdownFurnace";

    /**
     * 预装料任务触发
     */
    public static final String PREPARE_INPUT_MATERIAL = "PrepareInputMaterial";
    /**
     * 剩料重量
     */
    public static final String RESIDUAL_WEIGHT = "3286";
    /**
     * 引晶剩料重量
     */
    public static final String CRYSTAL_INTRODUCTION_RESIDUAL_WEIGHT = "引晶剩料重量";
    /**
     * 晶棒长度
     */
    public static final String CRYSTAL_LENGTH = "1274Max";
    /**
     * 收尾方式
     */
    public static final String WIND_UP = "closeMethod";
    /**
     * 晶棒重量
     */
    public static final String CRYSTAL_WEIGHT = "3287";

    /**
     * 头长
     */
    public static final String HEAD_LEN = "肩部长度";

    /**
     * 尾长
     */
    public static final String TAIL_LEN = "尾长度";

    /**
     * 进入抽空时间
     */
    public static final String ENTRY_EVACUATION_TIME = "进入抽空时间";

    /**
     * 进入取熔料时间
     */
    public static final String MELTING_TIME = "进入取熔料时间";

    /**
     * 进入取熔料时间
     */
    public static final String MAX_DIAM = "等径最大直径";

    /**
     * 进入取熔料时间
     */
    public static final String MIN_DIAM = "等径最小直径";

    /**
     * 引晶埚转
     */
    public static final String CRYSTAL_CRUCIBLE_ROTATION = "引晶埚转";

    @ApiModelProperty(value = "信号代码")
    @NotBlank(message = "信号代码，不能为空")
    String taskCode;

    @ApiModelProperty(value = "信号名称")
    @NotBlank(message = "信号名称，不能为空")
    String taskName;

    @ApiModelProperty(value = "设备类型")
    String deviceType;

    @ApiModelProperty(value = "设备号")
    @NotBlank(message = "设备号，不能为空")
    String deviceCode;

    @ApiModelProperty(value = "收集信息")
    Map<String, Object> startCollectionData;

    @ApiModelProperty(value = "触发信息")
    Map<String, Object> startValidateMap;

    @ApiModelProperty(value = "上传时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    Date startTime;
}
