package com.njcn.advance.pojo.param.govern.voltage;

import com.njcn.common.pojo.constant.PatternRegex;
import com.njcn.web.constant.ValidMessage;
import com.njcn.web.pojo.param.BaseParam;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern;

@Data
public class SgMachineParam {

    /**
     * 生产线id
     */
    @ApiModelProperty("生产线id")
    @NotBlank(message = ValidMessage.MISS_PREFIX + "productLineId")
    private String productLineId;

    /**
     * 设备名称
     */
    @ApiModelProperty("设备名称")
    @NotBlank(message = ValidMessage.MISS_PREFIX + "name")
    private String name;

    /**
     * 设备型号
     */
    @ApiModelProperty("设备型号")
    private String type;

    /**
     * 是否已安装补偿装置进行治理，默认为0（0 否；1 是）
     */
    @ApiModelProperty("是否已安装补偿装置")
    private Integer governFlag = 0;

    /**
     * 中断导致的设备损失（默认为0）
     */
    @ApiModelProperty("中断导致的设备损失")
    @NotNull(message = ValidMessage.MISS_PREFIX + "machineLoss")
    private Double machineLoss;

    /**
     * 中断导致的原料损失（默认为0）
     */
    @ApiModelProperty("中断导致的原料损失")
    @NotNull(message = ValidMessage.MISS_PREFIX + "materialLoss")
    private Double materialLoss;

    /**
     * 功率（默认为0）
     */
    @ApiModelProperty("功率")
    @NotNull(message = ValidMessage.MISS_PREFIX + "machinePower")
    private Double machinePower;

    /**
     * 更新操作实体
     */
    @Data
    @EqualsAndHashCode(callSuper = true)
    public static class SgMachineUpdateParam extends SgMachineParam {

        /**
         * 表Id
         */
        @ApiModelProperty("id")
        @NotBlank(message = ValidMessage.ID_NOT_BLANK)
        @Pattern(regexp = PatternRegex.SYSTEM_ID, message = ValidMessage.ID_FORMAT_ERROR)
        private String id;

    }


    /**
     * 分页查询实体
     */
    @Data
    @EqualsAndHashCode(callSuper = true)
    public static class SgMachineQueryParam extends BaseParam {

        @ApiModelProperty("生产线id")
        @NotBlank(message = ValidMessage.MISS_PREFIX + "productLineId")
        private String productLineId;

    }


}
