package api.common.pojo.po.scene;

import lombok.*;

import java.io.Serializable;
import java.sql.Timestamp;
import java.util.List;

/**
 * 泛化模板
 */
@EqualsAndHashCode()
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class SceneGeneralTemplatePO implements Serializable {

    private String id;              // （唯一）
    private String sceneId;//场景编号
    private String scenarioName;  //场景名称
    private String scenarioWeather;  //天气
    private String scenarioTime;  //场景发生时间
    private String scenarioVehicleModel;  //车辆模型
    private String scenarioRoadType;  //道路类型
    private String scenarioRadiusCurvature;  //车道线曲率半径
    private String egoStartX;  //自车初始x坐标
    private String egoStartY;  //自车初始y坐标
    private String egoStartVelocity ; //自车初始速度
    private String egoHeadingAngle ; //自车航向角
    private String egoVelocityStatus ; //自车行驶速度状态
    private String egoTrajectory ; //自车轨迹形态
    private String egoDurationTime ; //自车轨迹持续时间
    private String egoVelocityTime  ;//自车速度分段持续时间
    private String egoTrajectoryTime ; //自车轨迹形态分段持续时间
    private String obsStartX ; //目标车初始x坐标
    private String obsStartY ; //目标车初始y坐标
    private String obsStartVelocity;//目标车初始速度
    private String obsLateralAcceleration;//目标物最大横向加速度(m/s²)
    private String obsLongitudinalAcceleration;//目标物最大纵向加速度(m/s²)
    private String obsHeadingAngleRel;//目标物相对自车航向角
    private String obsVelocityStatus;//目标车行驶速度状态
    private String obsTrajectory;//目标车轨迹形态
    private String obsDurationTime;//目标车轨迹持续时间
    private String obsVelocityTime;//目标速度分段持续时间(s)
    private String obsTrailTime;//目标车轨迹形态分段持续时间
    private String obsType;//目标物类型
    private String generalizationType;//泛化标志位
    private String scenarioResume;//场景简述
    private String sceneDetailedDescription;//场景详细描述
    private String evaluatingIndicator;//评价指标
    private String videoLink;//视频链接
    private String fileName;//文件名或地址
    private String version;//版本号
    private String share;//0私有 1共有


    private List<String> fileNameAll;//sheet页集合
    private List<String> sceneNames; // 供场景上传任务删除使用


    /**
     * 记录创建时间
     */
    public Timestamp createTime;
    /**
     * 记录最后更新时间（包括删除）
     */
    public Timestamp modifyTime;
    /**
     * 记录创建人（用户id）
     */
    public String createUserId;
    /**
     * 记录最后更新人（包括删除）（用户id）
     */
    public String modifyUserId;
    /**
     * 是否已删除
     */
    public String isDeleted;

    // 复杂度
    private String complexity;
    // 危险度
    private String risk;
    // 复杂度等级
    private String complexityLevel;
    // 危险度等级
    private String riskLevel;


}
