package com.njcn.harmonic.pojo.param.upload;

import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.njcn.db.bo.BaseEntity;
import com.njcn.device.pms.pojo.param.PmsParkParam;
import com.njcn.web.pojo.param.BaseParam;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.Setter;
import org.springframework.format.annotation.DateTimeFormat;

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

/**
 * <p>
 * 电能质量全过程管理用户
 * </p>
 *
 * @author cdf
 * @since 2024-10-09
 */
@Getter
@Setter
public class PmsTemUserParam {


    private String objId;

    /**
     * 所属网省
     */
    private String provinceOrg;

    /**
     * 所属网省名称
     */
    private String provinceOrgName;

    /**
     * 所属地市
     */
    private String cityOrg;

    /**
     * 所属地市名称
     */
    private String cityOrgName;

    /**
     * 运维单位
     */
    @NotBlank(message = "单位不可为空")
    private String maintOrg;

    /**
     * 运维单位名称
     */
    private String maintOrgName;

    /**
     * 用户/项目名称
     */
    @NotBlank(message = "用户/项目名称不可为空")
    private String consName;

    /**
     * 干扰源类型
     */
    @NotBlank(message = "干扰源类型不可为空")
    private String sourceType;

    /**
     * 干扰源类别
     */
    @NotBlank(message = "干扰源类别不可为空")
    private String sourceCategory;

    /**
     * 场站属性
     */
    @NotBlank(message = "场站属性不可为空")
    private String sourceAttr;

    /**
     * 并网/供电电压等级
     */
    @NotBlank(message = "并网/供电电压等级不可为空")
    private String gcVoltageLevel;

    /**
     * 并网/供电变电站
     */
    private String gcSubstationId;
    /**
     * 并网/供电变电站名称
     */
    @NotBlank(message = "并网/供电变电站不可为空")
    private String gcSubstationName;

    /**
     * 并网/供电变电站电压等级
     */
    @NotBlank(message = "并网/供电变电站电压等级不可为空")
    private String gcSubstationVoltageLevel;

    /**
     * 并网/供电线路
     */
    private String gcFeederId;

    /**
     * 并网/供电线路名称
     */
    private String gcFeederName;

    /**
     * 总装机容量（MVA）
     */
    @NotNull(message = "总装机容量（MVA）不可为空")
    private Double ratedCapacity;

    /**
     * 档案状态
     */
    @NotBlank(message = "档案状态不可为空")
    private String userDossierStatus;





    /**
     * 发布人
     */
    private String releaseUserName;

    /**
     * 所属电站类型
     */
    private String gcSubstationType;

    /**
     * 投运日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDate operateTime;

    /**
     * 发布时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime releaseTime;

    /**
     * 营销用户编号
     */
    private String consNo;

    /**
     * 用户id
     */
    private String consObjId;



    @Data
    @EqualsAndHashCode(callSuper = true)
    public static class UpdatePmsTemUserParam extends PmsTemUserParam {
        @NotBlank(message = "主键索引不可为空")
        private String objId;
    }

    @Data
    @EqualsAndHashCode(callSuper = true)
    public static class QueryPmsTemUserParam extends BaseParam {

        private String objId;

        /**
         * 运维单位
         */
        private String maintOrg;
    }


}
