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

import com.baomidou.mybatisplus.annotation.TableName;
import com.njcn.db.bo.BaseEntity;
import com.njcn.web.pojo.param.BaseParam;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.Setter;

import java.io.Serializable;
import java.math.BigDecimal;

/**
 * <p>
 * 评估用户冲击负荷参数查询参数
 * </p>
 *
 * @author cdf
 * @since 2025-06-06
 */
@Getter
@Setter
@TableName("assess_shock_load_param")
@ApiModel(value = "AssessShockLoadParamQuery", description = "评估用户冲击负荷参数查询参数")
public class AssessShockLoadParamQuery extends BaseParam implements Serializable {

    private static final long serialVersionUID = 1L;


    @ApiModelProperty(value = "评估用户ID，例：8afaa9a15707483a0157262f8e78077d", required = true)
    private String assessId;

    @ApiModelProperty(value = "冲击负荷类型ID，从字典表查出，例：d19c10178eeb4da2bca1df18a050524d", required = true)
    private String inpactloadtypeId;

    @ApiModelProperty(value = "冲击负荷容量，单位：MVA，例：100.00")
    private BigDecimal inpactloadPower;

    @ApiModelProperty(value = "冲击负荷个数，例：1")
    private BigDecimal inpactloadNum;

    @ApiModelProperty(value = "冲击负荷高压侧电压等级，例：22（与PMS3.0编码一致）")
    private String inpactloadhighScale;

    @ApiModelProperty(value = "是否隔离变（00-否，01-是）", required = true)
    private String isIsolationtrans;

    @ApiModelProperty(value = "隔离变阻抗，单位：%，例：5.00")
    private BigDecimal isolationtransImpedance;

    @ApiModelProperty(value = "冲击负荷低压侧电压等级，例：22（与PMS3.0编码一致）")
    private String inpactloadlowScale;

    @ApiModelProperty(value = "负荷频度（01-N≤4次/d，02-N>4次/d且N≤2次/h，03-2次/h<N≤10次/h）")
    private String inpactloadFreq;

    @ApiModelProperty(value = "闪变叠加系数，例：5.00")
    private BigDecimal flickerCoeff;

    /**
     * 更新评估用户冲击负荷参数的查询参数
     */
    @EqualsAndHashCode(callSuper = true)
    @ApiModel(value = "UpdateAssessShockLoadParamQuery", description = "更新评估用户冲击负荷参数的查询参数")
    @Data
    public static class UpdateAssessShockLoadParamQuery extends AssessShockLoadParamQuery {

        @ApiModelProperty(value = "冲击负荷ID（更新时必填），例：ffd5b663906648ad90811a4fcf108fec", required = true)
        private String inpactloadId;
    }
}