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 javax.validation.constraints.NotBlank;
import java.math.BigDecimal;

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

    private static final long serialVersionUID = 1L;

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

    @ApiModelProperty(value = "用户负荷名称，例：1号炼钢炉", required = true)
    @NotBlank(message = "用户负荷名称不可为空")
    private String loadName;

    @ApiModelProperty(value = "电压等级，例：22（与PMS3.0编码一致）")
    private String linevoltageScale;

    @ApiModelProperty(value = "进线容量，单位kVA，例：200.00")
    private BigDecimal transhighCapacity;

    @ApiModelProperty(value = "配电变压器阻抗，单位%，例：5.00")
    private BigDecimal transImpedance;

    @ApiModelProperty(value = "谐波源特性字典ID，从字典表获取，例：d53f0026d2f04c9e9fee6bba8386487a")
    private String harmId;

    @ApiModelProperty(value = "电压等级，例：22（与PMS3.0编码一致）")
    private String translowScale;

    @ApiModelProperty(value = "非线性负荷功率，单位kW，例：150")
    private BigDecimal nonlinearloadPower;

    @ApiModelProperty(value = "功率因数，例：0.90")
    private BigDecimal powerFactor;

    /**
     * 内部类：更新评估用户负荷参数的查询参数
     */
    @EqualsAndHashCode(callSuper = true)
    @Data
    @ApiModel(value = "UpdateAssessLoadParamQuery", description = "更新评估用户负荷参数的查询参数")
    public static class UpdateAssessLoadParamQuery extends AssessLoadParamQuery {

        @ApiModelProperty(value = "用户负荷ID（更新时必填），例：759b793da37548d8b865efdc7f461304", required = true)
        @NotBlank(message = "用户负荷ID不可为空")
        private String loadId;
    }
}