package cn.iocoder.yudao.module.rescue.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import cn.iocoder.yudao.annotation.Excel;
import cn.iocoder.yudao.framework.tenant.core.db.TenantBaseDO;
import lombok.Data;

import javax.validation.constraints.NotEmpty;
import java.util.Date;
import java.util.List;

/**
 * 【请填写功能名称】对象 rescue_info
 *
 * @author ruoyi
 * @date 2023-07-14
 */
@Data
public class RescueInfo extends TenantBaseDO
{
    private static final long serialVersionUID = 1L;

    /** 主键 */
    @TableId(type = IdType.AUTO)
    private Long id;
    private Long userId;

    /** 联系人名称 */
    @Excel(name = "客户名称")
    private String connectionName;

    /** 联系人手机号 */
    @Excel(name = "客户手机号")
    private String connectionPhone;

    /** 车牌号 */
    @Excel(name = "客户车牌号")
    private String licenseNum;
    @Excel(name = "司机姓名")
    private String driverName;
    @Excel(name = "司机手机号")
    private String driverPhoneNum;
    @Excel(name = "司机车牌号")
    private String driverCarNum;

    /** 是否为预约单 */
    @NotEmpty(message = "是否为预约单不能为空")
    private String isAppointment;

    /** 救援时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm",timezone="GMT+8")
    @Excel(name = "救援时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm")
    private Date rescueTime;

    /** 救援类型 */
    @Excel(name = "救援类型",dictType="dljy_type")
    @NotEmpty(message = "救援类型不能为空")
    private String rescueType;

    /** 车辆类型  大中小 */
    @Excel(name = "车辆类型",dictType="rescue_car_type")
    @NotEmpty(message = "车辆类型不能为空")
    private String carType;
    /** 救援地点 详细描述 */
    @Excel(name = "救援地点")
    @NotEmpty(message = "救援地点不能为空")
    private String rescuePosition;

    /** 救援经度 */

    private String rescueLongitude;

    /** 救援纬度 */

    private String rescueLatitude;
    private String kcPosition;

    /** 收费类型 */
    @Excel(name = "收费类型",dictType = "fee_type")
    @NotEmpty(message = "收费类型不能为空")
    private String feeType;

    /** 车辆品牌 */
    private String carBrand;

    /** 目的地详细描述 */
    @Excel(name = "目的地")
    private String destinationInfo;

    /** 目的地经度 */
    private String destinationLongitude;

    /** 目的地纬度 */
    private String destinationLatitude;
    //救援详细描述
    private String rescueDetail;
    //救援现场图片
    private String rescueSceneImage;
    //当前救援状态
    @Excel(name = "救援状态",dictType = "jy_status")
    private String rescueStatus;
    //救援司机主键
    private Long driverId;
    //救援的路段
    @Excel(name = "路段")
    private String sectionRoad;
    //开始的公里数
    private Double startScale;
    //结束的公里数
    private Double endScale;
    //放空公里数
    private Double emptyNum;
    //过关费
    private Double checkpointMoney;
    private Long deptId;
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
    private Date hcTime;
    private Long hcUserId;
    private String  hcUserName;
    private String hcUserPhone;
    //是否需要系统处理0不需要1需要
    private String needSystem;
    private Double rescueDistance;
    //救援和司机的中间建
    @TableField(exist = false)
    private Long rescueDriverId;
    @TableField(exist = false)
    private String rescueTypeStr;
    @TableField(exist = false)
    private String carTypeStr;
    @TableField(exist = false)
    private String rescueStatusStr;
    @TableField(exist = false)
    private String[] rescueSceneImageList;
    @TableField(exist = false)
    @Excel(name = "订单状态",dictType = "jy_order_status")
    private String orderStatus;
    @TableField(exist = false)
    private Long setMoney;
    @TableField(exist = false)
    @Excel(name = "应收金额")
    private Double setMoneyYuan;
    @TableField(exist = false)
    private Long payMoney;
    @TableField(exist = false)
    @Excel(name = "实付金额")
    private Double payMoneyYuan;
    @TableField(exist = false)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm",timezone="GMT+8")
    @Excel(name = "收款时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm")
    private Date payTime;
    @TableField(exist = false)
    private Long distance;
    @TableField(exist = false)
    private Long needTime;
    @TableField(exist = false)
    private String  driverLevel;
    @TableField(exist = false)
    private String  feeTypeStr;
    /** 评价详情 */
    @TableField(exist = false)
    private String commentDesc;

    /** 星级 */
    @TableField(exist = false)
    private Long commentStar;

    @TableField(exist = false)
    private Long rescueOrderId;
    @TableField(exist = false)
    private String flag;
    @TableField(exist = false)
    private String rescueStart;
    @TableField(exist = false)
    private String rescueEnd;
    @TableField(exist = false)
    private Double rescueTcBig;
    @TableField(exist = false)
    private Double rescueTcMid;
    @TableField(exist = false)
    private Double rescueTcSmall;
    @TableField(exist = false)
    private String rescueStartMonth;

    @TableField(exist = false)
    private List<String> roadIds;

    @TableField(exist = false)
    private List<Long> deptList;
}
