package com.jiayue.ipfcst.common.data.entity;

import com.jiayue.ipfcst.common.data.abst.equipmentinfo.AbstractEquipmentInfo;
import com.jiayue.ipfcst.common.data.constant.enums.EquipmentTypeEnum;
import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.validation.constraints.Digits;

/**
 * 风机实体
 *
 * @author zzy
 * @version 1.0
 * @since 2019/8/2 10:14
 */
@EqualsAndHashCode(callSuper = true)
@Data
@Entity
public class WindTurbineInfo extends AbstractEquipmentInfo {
    public WindTurbineInfo() {
        super.setEquipmentType(EquipmentTypeEnum.WINDTURBINE);
    }
    /**
     * 备用字段A 应用于样板机编号
     */
    /**
     * 风机等级
     */
    @Column
    private Integer grade;

    /**
     * 设计空气密度
     */
    @Column
    private Double airDensity;

    /**
     * 切入速度
     */
    @Column(precision = 7, scale = 4)
    private Double cutInSpeed;

    /**
     * 额定风速
     */
    @Column(precision = 7, scale = 4)
    private Double ratedWindSpeed;

    /**
     * 切出速度
     */
    @Column(precision = 7, scale = 4)
    private Double cutOutSpeed;

    /**
     * 生存风速
     */
    @Column
    private Double liveWindSpeed;

    /**
     * 叶轮直径（m）
     */
    @Column(precision = 7, scale = 4)
    private Double windWheelDiameter;

    /**
     * 最大转速（m）
     */
    @Column
    private Long windWheelMaxSpeed;

    /**
     * 最小转速（m）
     */
    @Column
    private Long windWheelMinSpeed;

    /**
     * 额定转速（m）
     */
    @Column
    private Long windWheelRatedSpeed;

    /**
     * 轮毂高度（m）
     */
    @Column(precision = 7, scale = 4)
    private Double hubHeight;

    /**
     * 并网日期（m）
     */
    @Column(precision = 7, scale = 4)
    private Long parallelInDate;


    /**
     * 使用寿命
     */
    @Column
    private Double lifeLength;


    /**
     * 最大功率
     */
    @Column
    private Double maxPower;

    /**
     * 风机是否样板机
     */
    @Column
    private Boolean sample;

    /**
     * 经度
     */
    @Column
    @Digits(integer = 10, fraction = 6)
    private Double longitude;

    /**
     * 纬度
     */
    @Column
    @Digits(integer = 10, fraction = 6)
    private Double latitude;

    /**
     * 集电线路
     */
    @Column
    private String collectorCircuit;

    /**
     * 分期
     */
    @Column
    private String divideIntoDifferentPeriod;


    /**
     * 风机正常运行的状态码
     */
    @Column
    private Integer correctState = 0;


    /**
     *  该风机的 功率--风速 曲线函数
     *  按照Aviator公式的书写方法；使用 X（大写）代替风速参数
     */
    @Column
    private String  powerCurveFunction;

}
