package com.njcn.device.pms.pojo.param;

import com.njcn.web.pojo.annotation.DateTimeStrValid;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.time.LocalDate;

/**
 * pms-device
 * 发电用户
 * @author cdf
 * @date 2022/10/27
 */
@Data
public class PowerGenerationUserParam {

    /**
     * 用户编号
     */
    @ApiModelProperty(value = "用户编号",required = true)
    @NotBlank(message = "用户编号不可为空")
    private String id;

    /**
     * 用户名称
     */
    @ApiModelProperty(value = "用户名称",required = true)
    @NotBlank(message = "用户名称不可为空")
    private String name;



    /**
     * 组织机构ID(外键)
     */
    @ApiModelProperty(value = "组织机构ID(外键)",required = true)
    @NotBlank(message = "组织机构ID不可为空")
    private String orgId;

    /**
     * 组织名称
     */
    @ApiModelProperty(value = "组织名称",required = true)
    @NotBlank(message = "组织名称不可为空")
    private String orgName;


    /**
     * 运维单位ID(外键)
     */
    @ApiModelProperty(value = "运维单位ID(外键)",required = true)
    @NotBlank(message = "运维单位ID不可为空")
    private String operationId;

    /**
     * 运维单位名称
     */
    @ApiModelProperty(value = "运维单位名称",required = true)
    @NotBlank(message = "运维单位名称不可为空")
    private String operationName;

    /**
     * 电源类别(字典)
     */
    @ApiModelProperty(value = "电源类别(字典)",required = true)
    @NotBlank(message = "电源类别不可为空")
    private String powerCategory;

    /**
     * 电站类型(字典)
     */
    @ApiModelProperty(value = "电站类型(字典)",required = true)
    @NotBlank(message = "电站类型不可为空")
    private String powerStationType;

    /**
     * 发电方式(字典)
     */
    @ApiModelProperty(value = "发电方式(字典)",required = true)
    @NotBlank(message = "发电方式不可为空")
    private String powerGenerationMode;

    /**
     * 并网电压等级(字典)
     */
    @ApiModelProperty(value = "并网电压等级(字典)",required = true)
    @NotBlank(message = "并网电压等级不可为空")
    private String voltageLevel;

    /**
     * 总装机容量
     */
    @ApiModelProperty(value = "总装机容量",required = true)
    @NotNull(message = "总装机容量不可为空")
    private Float sourceCapacity;

    /**
     * 并网日期
     */
    @ApiModelProperty(value = "并网日期",required = true)
    @NotBlank(message = "并网日期不可为空")
    @DateTimeStrValid(format = "yyyy-MM-dd",message = "并网日期格式有误")
    private String connectionDate;

    /**
     * 能源消纳方式(字典)
     */
    @ApiModelProperty(value = "能源消纳方式(字典)",required = true)
    @NotBlank(message = "能源消纳方式不可为空")
    private String connectionMode;

    /**
     * 客户状态(字典)
     */
    @ApiModelProperty(value = "客户状态(字典)",required = true)
    @NotBlank(message = "客户状态不可为空")
    private String gcStat;

    /**
     * 供电变电站(外键)
     */
    @ApiModelProperty(value = "供电变电站(外键)",required = true)
    @NotBlank(message = "供电变电站不可为空")
    private String powerStationId;

    /**
     * 供电线路(外键)
     */
    @ApiModelProperty(value = "供电线路(外键)",required = true)
    @NotBlank(message = "供电线路不可为空")
    private String lineId;

    /**
     * 供电台区(外键)
     */
    @ApiModelProperty(value = "供电台区(外键)",required = true)
    @NotBlank(message = "供电台区不可为空")
    private String platformId;

    /**
     * 用户标签
     */
    @ApiModelProperty(value = "用户标签",required = true)
    @NotBlank(message = "用户标签不可为空")
    private String userTag;

    /**
     * 是否是上送国网监测点,0-否 1-是
     */
    @ApiModelProperty(value = "是否是上送国网监测点,0-否 1-是",required = true)
    @NotNull(message = "是否是上送国网监测点不可为空")
    private Integer isUpToGrid;



}
