package com.njcn.advance.pojo.carrycapacity.param;

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

import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern;
import java.util.List;

/**
 * 
 * Description:
 * Date: 2024/2/20  11:15【需求编号】
 *
 * @author clam
 * @version V1.0.0
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
public class CarryCapacityUserParam {


    /**
     * 用户名称
     */
    private String userName;

    /**
     * 用户类型
     */
    private String userType;

    /**
     * 电压等级(V)
     */
    private String voltage;

    /**
     * 用户协议容量(MVA)
     */
    private Double protocolCapacity;
    /**
     * 省
     */
    private String province;

    /**
     * 市
     */
    private String city;

    /**
     * 区
     */
    private String region;

    /**
     * 所属区域
     */
    private String area;
    /**
     * 更新操作实体
     */
    @Data
    @EqualsAndHashCode(callSuper = true)
    public static class CarryCapacityUserUpdateParam extends CarryCapacityUserParam {
        @ApiModelProperty("用户Id")
        @NotBlank(message = "用户Id不能为空")
        @Pattern(regexp = PatternRegex.SYSTEM_ID, message = ValidMessage.ID_FORMAT_ERROR)
        private String userId;
    }
    @Data
    @EqualsAndHashCode(callSuper = true)
    public static class CarryCapacityUserPageParam extends CarryCapacityUserParam {

        private String userId;
        @NotNull(message="当前页不能为空！")
        @Min(value = 1, message = "当前页不能为0")
        @ApiModelProperty(value = "当前页",name = "pageNum",dataType ="Integer",required = true)
        private Integer pageNum;
        /**显示条数*/
        @NotNull(message="显示条数不能为空！")
        @ApiModelProperty(value = "显示条数",name = "pageSize",dataType ="Integer",required = true)
        private Integer pageSize;
        private String voltage;
        @ApiModelProperty(value="起始时间")
        private String startTime;

        @ApiModelProperty(value="结束时间")
        private String endTime;

        private List<String> userTypeList;
    }

}