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;

@Data
@ApiModel(value = "RescueOrder", description = "救援工单信息")
@JsonIgnoreProperties(ignoreUnknown = true)
public class RescueOrder {

    @ApiModelProperty(value = "工单ID", required = true)
    private String orderId;

    @ApiModelProperty(value = "报案车车牌", required = true)
    private String caseCarNum;

    @ApiModelProperty(value = "故障车车牌颜色", required = true)
    private String caseCarCoclor;

    @ApiModelProperty(value = "报案车车型", required = true)
    private String caseCarType;

    @ApiModelProperty(value = "报案车重量")
    private Long caeCarWeight;

    @ApiModelProperty(value = "报案电话", required = true)
    private String caseTel;

    @ApiModelProperty(value = "报案时间 yyyy-MM-dd HH:mm:ss", required = true, example = "2024-04-17 15:30:00")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date caseHappenTime;

    @ApiModelProperty(value = "事故纬度", required = true)
    private Double caseLat;

    @ApiModelProperty(value = "事故经度", required = true)
    private Double caseLng;

    @ApiModelProperty(value = "定位来源", required = true)
    private Long caseSource;

    @ApiModelProperty(value = "报案桩号KM")
    private String casePileKm;

    @ApiModelProperty(value = "报案桩号M")
    private String casePileM;

    @ApiModelProperty(value = "报案地址")
    private String caseAddress;

    @ApiModelProperty(value = "派遣车型")
    private Long missionCarType;

    @ApiModelProperty(value = "派遣车牌")
    private String missionCarNum;

    @ApiModelProperty(value = "接单时间", example = "2024-04-17 16:00:00")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date missionBeginTime;

    @ApiModelProperty(value = "结束时间", example = "2024-04-17 17:00:00")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date missionEndTime;

    @ApiModelProperty(value = "花费时间(分钟)")
    private Long costTime;

    @ApiModelProperty(value = "开始里程")
    private Long startMileage;

    @ApiModelProperty(value = "结束里程")
    private Long endMileage;

    @ApiModelProperty(value = "拖车里程")
    private String trailerMileage;

    @ApiModelProperty(value = "到达事故点位里程（预估）")
    private String reachCaseMileage;

    @ApiModelProperty(value = "拖车里程")
    private Long mileage;

    @ApiModelProperty(value = "取消/放空原因")
    private String cancal;

    @ApiModelProperty(value = "收费金额（计算）")
    private String payMoney;

    @ApiModelProperty(value = "实收金额")
    private String payRealMoney;

    @ApiModelProperty(value = "支付时间", example = "2024-04-17 18:00:00")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date payTime;

    @ApiModelProperty(value = "工单状态")
    private Long orderStatus;

    @ApiModelProperty(value = "预估作业时间（分钟）")
    private Long planCostTime;

    @ApiModelProperty(value = "预估到达时间（分钟）")
    private Long planReachTiem;

    @ApiModelProperty(value = "用户期望目的地经度")
    private Double caseDestinationLng;

    @ApiModelProperty(value = "用户期望目的地维度")
    private Double caseDestinationLat;

    @ApiModelProperty(value = "是否拥堵")
    private Long isCongestion;

    @ApiModelProperty(value = "最新救援过程名称")
    private String processName;

    @ApiModelProperty(value = "救援响应时间(分钟)")
    private Long anserTime;

    @ApiModelProperty(value = "救援到达时间(分钟)")
    private Long reachTime;

    @ApiModelProperty(value = "救援处置时间")
    private Long processTime;

    @ApiModelProperty(value = "派遣人员电话")
    private String missionPeopleTel;

    @ApiModelProperty(value = "派遣人员姓名")
    private String missionPeopleName;

    @ApiModelProperty(value = "备注")
    private String remark;

    @ApiModelProperty(value = "方向")
    private String direction;

    @ApiModelProperty(value = "占道情况")
    private String jeeves;

    @ApiModelProperty(value = "完整桩号")
    private String stake;

    @ApiModelProperty(value = "救援车辆经度")
    private Double missionCarLng;

    @ApiModelProperty(value = "救援车辆维度")
    private Double missionCarLat;

    @ApiModelProperty(value = "是否推送原一键救援系统")
    private Long isPushZd;

    @ApiModelProperty(value = "推送原一键救援系统时间", example = "2024-04-17 18:30:00")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date pushTime;

    @ApiModelProperty(value = "救援序号", required = true)
    private String pushId;

    @ApiModelProperty(value = "救援出发时间(分钟)")
    private Long departureTime;

    @ApiModelProperty(value = "部门名称")
    private String deptName;

    @ApiModelProperty(value = "工单案件类型")
    private String orderCaseType;

    @ApiModelProperty(value = "救援点ID")
    private Long rescuePointId;

    @ApiModelProperty(value = "救援队ID")
    private Long rescueTeamId;

    @ApiModelProperty(value = "路段编码")
    private String sectionCode;

    @ApiModelProperty(value = "路段名称")
    private String sectionName;

    @ApiModelProperty(value = "救援队名称")
    private String teamName;

}
