package api.common.pojo.po.model;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.math.BigDecimal;
import java.sql.Timestamp;
import java.util.List;

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class VehiclePO {
    private String id;  //主键id
    private String vehicleName; //车辆名称
    private String description; //车辆描述
    private String vehicleType;    //车辆类型（字典代码）
    private String modelLabel;    //车辆模型标签
    private String share;    //是否分享
    private String parameterType;    // 1 vtd 2 carsim
    //* -------------------------------- vtd --------------------------------
    private String vehicleCode; //车辆编码
    private String vehicleFrontView;    //车辆前视图
    private String vehicleTopView;    //车辆俯视图
    private BigDecimal maxSpeed;    //最大速度（千米/小时）
    private BigDecimal enginePower;    //发动机功率（千瓦）
    private BigDecimal maxDeceleration;    //最大减速度（米/秒2）
    private BigDecimal maxSteeringAngle;    //最大转角（度）
    private BigDecimal mass;    //质量（千克）
    private BigDecimal frontSurfaceEffective;    //前表面有效面积（平方米）
    private BigDecimal airDragCoefficient;    //空气阻力系数
    private BigDecimal rollingResistanceCoefficient;    //滚动阻力系数
    private BigDecimal wheelDiameter;    //车轮直径（米）
    private String wheelDrive;    //驱动方式
    private BigDecimal overallEfficiency;    //总效率
    private BigDecimal frontDistance;    //车前距（米）
    private BigDecimal rearDistance;    //车后距（米）
    private BigDecimal leftDistance;    //车左距（米）
    private BigDecimal rightDistance;    //车右距（米）
    private BigDecimal heightDistance;    //车高（米）
    private BigDecimal wheelbase;    //轴距（米）
    //* -------------------------------- carsim --------------------------------
    private String wheelCenterToTop;//轮胎中心到车顶的高度
    private String wheelCenterToGround;//轮胎中心到地面的高度
    private String centroidToFrontWheelCenter;//质心到前轮中心
    private String centroidToGround;//质心到地面
    //    private String wheelbase;//轴距
    private String sprungMass;//簧上质量
    private String vehicleLength;//车辆长度 LEN_SM
    private String vehicleWidth;//车辆宽度
    private String rotationalInertiaX;//整车绕x轴转动惯量
    private String rotationalInertiaY;//整车绕y轴转动惯量
    private String rotationalInertiaZ;//整车绕z轴转动惯量

    private String frontLeftWheelEffectiveRollingRadius;//左前轮有效滚动半径
    private String frontLeftWheelRollingResistanceCoefficient;//左前轮滚动阻力系数
    private String frontLeftWheelFreeRadius;//左前轮自由半径
    private List<List<String>> frontLeftWheelRelationCurvePositiveMomentAndSideslipAngle;//左前轮不同载荷下正力矩和侧偏角关系曲线
    private String frontLeftWheelRelationCurvePositiveMomentAndSideslipAngleJson;//左前轮不同载荷下正力矩和侧偏角关系曲线
    private List<List<String>> frontLeftWheelRelationCurveLateralForceAndSideslipAngle;//左前轮不同载荷下侧向力和侧偏角关系曲线
    private String frontLeftWheelRelationCurveLateralForceAndSideslipAngleJson;//左前轮不同载荷下侧向力和侧偏角关系曲线
    private List<List<String>> frontLeftWheelRelationCurveLongitudinalForceAndSideslipAngle;//左前轮不同载荷下纵向力和侧偏角关系曲线
    private String frontLeftWheelRelationCurveLongitudinalForceAndSideslipAngleJson;//左前轮不同载荷下纵向力和侧偏角关系曲线

    private String rearLeftWheelEffectiveRollingRadius;//左前轮有效滚动半径
    private String rearLeftWheelRollingResistanceCoefficient;//左前轮滚动阻力系数
    private String rearLeftWheelFreeRadius;//左前轮自由半径
    private List<List<String>> rearLeftWheelRelationCurvePositiveMomentAndSideslipAngle;//左后轮不同载荷下正力矩和侧偏角关系曲线
    private String rearLeftWheelRelationCurvePositiveMomentAndSideslipAngleJson;//左后轮不同载荷下正力矩和侧偏角关系曲线
    private List<List<String>> rearLeftWheelRelationCurveLateralForceAndSideslipAngle;//左后轮不同载荷下侧向力和侧偏角关系曲线
    private String rearLeftWheelRelationCurveLateralForceAndSideslipAngleJson;//左后轮不同载荷下侧向力和侧偏角关系曲线
    private List<List<String>> rearLeftWheelRelationCurveLongitudinalForceAndSideslipAngle;//左后轮不同载荷下纵向力和侧偏角关系曲线
    private String rearLeftWheelRelationCurveLongitudinalForceAndSideslipAngleJson;//左后轮不同载荷下纵向力和侧偏角关系曲线

    private String frontRightWheelEffectiveRollingRadius;//右前轮有效滚动半径
    private String frontRightWheelRollingResistanceCoefficient;//右前轮滚动阻力系数
    private String frontRightWheelFreeRadius;//右前轮自由半径
    private List<List<String>> frontRightWheelRelationCurvePositiveMomentAndSideslipAngle;//右前轮不同载荷下正力矩和侧偏角关系曲线
    private String frontRightWheelRelationCurvePositiveMomentAndSideslipAngleJson;//右前轮不同载荷下正力矩和侧偏角关系曲线
    private List<List<String>> frontRightWheelRelationCurveLateralForceAndSideslipAngle;//右前轮不同载荷下侧向力和侧偏角关系曲线
    private String frontRightWheelRelationCurveLateralForceAndSideslipAngleJson;//右前轮不同载荷下侧向力和侧偏角关系曲线
    private List<List<String>> frontRightWheelRelationCurveLongitudinalForceAndSideslipAngle;//右前轮不同载荷下纵向力和侧偏角关系曲线
    private String frontRightWheelRelationCurveLongitudinalForceAndSideslipAngleJson;//右前轮不同载荷下纵向力和侧偏角关系曲线

    private String rearRightWheelEffectiveRollingRadius;//右后轮有效滚动半径
    private String rearRightWheelRollingResistanceCoefficient;//右后轮滚动阻力系数
    private String rearRightWheelFreeRadius;//右后轮自由半径
    private List<List<String>> rearRightWheelRelationCurvePositiveMomentAndSideslipAngle;//右后轮不同载荷下正力矩和侧偏角关系曲线
    private String rearRightWheelRelationCurvePositiveMomentAndSideslipAngleJson;//右后轮不同载荷下正力矩和侧偏角关系曲线
    private List<List<String>> rearRightWheelRelationCurveLateralForceAndSideslipAngle;//右后轮不同载荷下侧向力和侧偏角关系曲线
    private String rearRightWheelRelationCurveLateralForceAndSideslipAngleJson;//右后轮不同载荷下侧向力和侧偏角关系曲线
    private List<List<String>> rearRightWheelRelationCurveLongitudinalForceAndSideslipAngle;//右后轮不同载荷下纵向力和侧偏角关系曲线
    private String rearRightWheelRelationCurveLongitudinalForceAndSideslipAngleJson;//右后轮不同载荷下纵向力和侧偏角关系曲线

    private String frontWheelSuspensionType;//前轮悬架类型 1 独立悬架 2 非独立悬架
    private String frontWheelSuspensionKinematicsCoefficient;//前轮悬架运动学系数
    private String frontWheelUnsprungMass;//前轮簧下质量
    private String frontWheelTrackWidth;//前轮轮距
    private String rearWheelSuspensionType;//后轮悬架类型 1 独立悬架 2 非独立悬架
    private String rearWheelSuspensionKinematicsCoefficient;//后轮悬架运动学系数
    private String rearWheelUnsprungMass;//后轮簧下质量
    private String rearWheelTrackWidth;//后轮轮距
    private String windwardArea;//迎风面积
    private String airDensity;//空气密度
    private String engineCrankshaftMomentInertia;//发动机曲轴转动惯量
    private String idleSpeed;//怠速转速
    private List<List<String>> relationCurveEngineTorqueSpeedAndThrottleOpening;//发动机扭矩、转速和节气门开度关系曲线
    private String relationCurveEngineTorqueSpeedAndThrottleOpeningJson;//发动机扭矩、转速和节气门开度关系曲线
    private String momentInertiaInputShaft;//输入轴的转动惯量
    private String momentInertiaOutputShaft;//输出轴的转动惯量
    private String finalDriveRatio;//主减速器传动比
    private String transmissionEfficiency;//传动效率
    private List<String> gearRatio;//R,N,1,2,3,4,5,6
    private String gearRatioJson;//R,N,1,2,3,4,5,6
    private List<String> inertia;//R,N,1,2,3,4,5,6
    private String inertiaJson;//R,N,1,2,3,4,5,6
    private List<String> driving;//R,N,1,2,3,4,5,6
    private String drivingJson;//R,N,1,2,3,4,5,6
    private List<String> coasting;//R,N,1,2,3,4,5,6
    private String coastingJson;//R,N,1,2,3,4,5,6
    private String shiftTime;//换挡时间
    private List<List<String>> shiftTimeUp12;//
    private String shiftTimeUp12Json;//
    private List<List<String>> shiftTimeDown12;//
    private String shiftTimeDown12Json;//
    private List<List<String>> shiftTimeUp23;//
    private String shiftTimeUp23Json;//
    private List<List<String>> shiftTimeDown23;//
    private String shiftTimeDown23Json;//
    private List<List<String>> shiftTimeUp34;//
    private String shiftTimeUp34Json;//
    private List<List<String>> shiftTimeDown34;//
    private String shiftTimeDown34Json;//
    private List<List<String>> shiftTimeUp45;//
    private String shiftTimeUp45Json;//
    private List<List<String>> shiftTimeDown45;//
    private String shiftTimeDown45Json;//
    private List<List<String>> shiftTimeUp56;//
    private String shiftTimeUp56Json;//
    private List<List<String>> shiftTimeDown56;//
    private String shiftTimeDown56Json;//
    private String brakeType;//制动类型 1 前轮制动 2 后轮制动 3 四轮制动
    private String frontLeftWheelBrakingTorque;//左前轮制动力矩
    private String rearLeftWheelBrakingTorque;//左后轮制动力矩
    private String frontRightWheelBrakingTorque;//右前轮制动力矩
    private String rearRightWheelBrakingTorque;//右后轮制动力矩
    private String steeringType;//转向类型 1 前轮转向 2 后轮转向 3 四轮转向
    private String steeringGearType;//转向器类型 1 齿轮齿条转向器 2 循环球式转向器
    private String steeringGearRatio;//转向器传动比
    private List<List<String>> relationCurveRightWheelAngleAndSteeringGearOutput;//右轮转角与转向器输出的关系
    private String relationCurveRightWheelAngleAndSteeringGearOutputJson;//右轮转角与转向器输出的关系
    private List<List<String>> relationCurveLeftWheelAngleAndSteeringGearOutput;//左轮转角与转向器输出的关系
    private String relationCurveLeftWheelAngleAndSteeringGearOutputJson;//左轮转角与转向器输出的关系
    private String driverType;  // 驱动类型
    private String parFilePath;
    /**
     * 记录创建时间
     */
    public Timestamp createTime;
    /**
     * 记录最后更新时间（包括删除）
     */
    public Timestamp modifyTime;
    /**
     * 记录创建人（用户id）
     */
    public String createUserId;
    /**
     * 记录最后更新人（包括删除）（用户id）
     */
    public String modifyUserId;
    /**
     * 是否已删除
     */
    public String isDeleted;
}
