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.Pattern;
import java.util.List;

/**
 * <p>
 * 
 * </p>
 *
 * @author hongawen
 * @since 2024-02-29
 */
@Data
public class SgUserParam  {

    @ApiModelProperty("名称")
    @NotBlank(message = ValidMessage.NAME_NOT_BLANK)
    @Pattern(regexp = PatternRegex.DIC_REGEX, message = ValidMessage.NAME_FORMAT_ERROR)
    private String userName;


    /**
     * 行业
     */
    @ApiModelProperty("行业")
    @NotBlank(message = ValidMessage.INDUSTRY_NOT_BLANK)
    @Pattern(regexp = PatternRegex.DIC_REGEX, message = ValidMessage.INDUSTRY_FORMAT_ERROR)
    private String industry;


    /**
     * 关键用户（0 否，1 是）
     */
    @ApiModelProperty("是否关键用户")
    private Integer keyUser = 1;

    /**
     * 所属区域
     */
    @ApiModelProperty("所属区域")
    @NotBlank(message = ValidMessage.ADDR_NOT_BLANK)
    private String addrStrOption;

    /**
     * 详细地址
     */
    @ApiModelProperty("详细地址")
    private String addrDetail;

    /**
     * 年均损失(单位：万元)
     */
    @ApiModelProperty("年均损失(单位：万元)")
    private Double averageLoss;

    /**
     * 联系方式
     */
    @ApiModelProperty("联系方式")
    private String concact;

    /**
     * 企业用户照片或logo
     */
    @ApiModelProperty("企业用户照片")
    private String userLogo;

    /**
     * 备注
     */
    @ApiModelProperty("备注")
    private String remark;


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

        /**
         * 表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 SgUserQueryParam extends BaseParam {

        /**
         * 所属区域
         */
        @ApiModelProperty("所属区域")
        private List<String> addrStrOption;

    }

}
