package com.artfess.rescue.external.model;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.util.Date;

/**
 * @Author: wsf
 * @Description: 三类事件 类型（optType）：submit、revevent、update 的事件信息实体
 * @DateTime: 2025/4/23 10:13
 **/

@Data
@ApiModel(value = "TrafficEvent", description = "事件信息实体")
@JsonIgnoreProperties(ignoreUnknown = true)
public class TrafficEvent {

    @ApiModelProperty(value = "工单ID", required = true)
    private String id;

    @ApiModelProperty(value = "事件标题", required = true)
    private String title;

    @ApiModelProperty("事件来源")
    private String source;

    @ApiModelProperty("发生时间")
    private Long happenTime;

    @ApiModelProperty("事件类型")
    private String eventType;

    @ApiModelProperty("事件类型ID")
    private String eventTypeId;

    @ApiModelProperty("事件级别")
    private Integer eventLevel;

    @ApiModelProperty("天气状况")
    private String weather;

    @ApiModelProperty("预计恢复时间")
    private Long esRecoveryTime;

    @ApiModelProperty("线路名称")
    private String roadName;

    @ApiModelProperty("线路ID")
    private String roadId;

    @ApiModelProperty("起点桩号")
    private String startStakeNumber;

    @ApiModelProperty("止点桩号")
    private String endStakeNumber;

    @ApiModelProperty("起点区县")
    private String startCity;

    @ApiModelProperty("止点区县")
    private String endCity;

    @ApiModelProperty("起点路段")
    private String startRoad;

    @ApiModelProperty("止点路段")
    private String endRoad;

    @ApiModelProperty("事件地点类型：1=收费站，2=隧道，3=互通立交，4=服务区，5=桩号")
    private Integer locationType;

    @ApiModelProperty("道路方向：up=上行，down=下行，twoWay=双向")
    private String roadDirection;

    @ApiModelProperty("备注")
    private String remark;

    @ApiModelProperty("提交时间")
    private Long uploadTime;

    @ApiModelProperty("事件状态：0=未处理，1=处理中，2=已处理")
    private Integer eventStatus;

    @ApiModelProperty("管制状态：0=无管制，1=有管制")
    private Integer controlStatus;

    @ApiModelProperty("管制描述")
    private String controlDesc;

    @ApiModelProperty("占用车道")
    private String occupiedLane;

    @ApiModelProperty("通行状态：1=通行缓慢，2=通行中断，3=通行正常")
    private Integer trafficState;

    @ApiModelProperty("拥堵里程")
    private String congestionMileage;

    @ApiModelProperty("受影响邻省")
    private String affectedCity;

    @ApiModelProperty("处置措施")
    private String disposalMeasures;

    @ApiModelProperty("事件内容")
    private String createDescription;

    @ApiModelProperty("记录人")
    private String recorder;

    @ApiModelProperty("电话")
    private String scenePhone;

    @ApiModelProperty("接警时间")
//    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Long releaseTime;

    @ApiModelProperty("短信报送级别")
    private String messageReportLevel;

    @ApiModelProperty("短信发送时间")
    private Long messageSendTime;

    @ApiModelProperty("执法队通知时间")
    private Long lawTeamSendTime;

    @ApiModelProperty("执法队通知电话")
    private String lawTeamPhone;

    @ApiModelProperty("路巡通知时间")
    private Long roadPatrolEndTime;

    @ApiModelProperty("路巡人员")
    private String roadPatrolStaff;

    @ApiModelProperty("救援出勤时间")
    private String rescueTime;

    @ApiModelProperty("救援通知人员")
    private String rescueStaff;

    @ApiModelProperty("简要经过")
    private String briefProcess;

    @ApiModelProperty("事件地址详细描述")
    private String addressDesc;

    @ApiModelProperty("行人死亡人数")
    private Integer pedestrianDeathNum;

    @ApiModelProperty("行人受伤人数")
    private Integer pedestrianInjuredNum;

    @ApiModelProperty("事故形态")
    private String accidentShap;

    @ApiModelProperty("事故涉及车辆数")
    private String involvedCar;

    @ApiModelProperty("事故涉及车辆类型")
    private String involvedCarType;

    @ApiModelProperty("经度")
    private String longitude;

    @ApiModelProperty("纬度")
    private String latitude;

    @ApiModelProperty("填报单位名称")
    private String uploadUserOrg;

    @ApiModelProperty("填报人")
    private String uploadUserName;
}

