package com.sqx.modules.orders.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.sqx.modules.driver.entity.Driver;
import com.sqx.modules.driver.entity.DriverRoute;
import com.sqx.modules.orders.utils.LocationUtils;
import lombok.Data;
import org.apache.poi.hpsf.Decimal;

import java.io.Serializable;
import java.math.BigDecimal;

/**
 * @description orders
 * @author fang
 * @date 2024-10-24
 */
@Data
public class Orders implements Serializable {

    private static final long serialVersionUID = 1L;

    @TableId(type = IdType.AUTO)
    /**
     * 订单id
     */
    private Long ordersId;

    /**
     * 订单号
     */
    private String ordersNo;

    /**
     * 下单人姓名
     */
    private String shipUserName;

    /**
     * 下单人手机
     */
    private String shipUserPhone;

    /**
     * 出发地址id
     */
    private Long shipAddressId;

    /**
     * 出发省
     */
    private String shipProvince;

    /**
     * 出发市
     */
    private String shipCity;

    /**
     * 出发区
     */
    private String shipDistrict;

    /**
     * 出发地址
     */
    private String shipAddress;

    /**
     * 出发地址经度
     */
    private String shipAddressLongitude;

    /**
     * 出发地址维度
     */
    private String shipAddressLatitude;

    /**
     * 目的地址id
     */
    private Long deliveryAddressId;

    /**
     * 目的省
     */
    private String deliveryProvince;

    /**
     * 目的市
     */
    private String deliveryCity;

    /**
     * 目的区
     */
    private String deliveryDistrict;

    /**
     * 目的地址
     */
    private String deliveryAddress;

    /**
     * 目的地址经度
     */
    private String deliveryAddressLongitude;

    /**
     * 目的地址维度
     */
    private String deliveryAddressLatitude;

    /**
     * 预约开始时间
     */
    private String appointmentStartTime;

    /**
     * 预约结束时间
     */
    private String appointmentEndTime;

    /**
     * 预约类型 1独享 2拼单
     */
    private Integer appointmentType;

    /**
     * 预约人数
     */
    private Integer appointmentNum;

    /**
     * 备注
     */
    private String remark;

    /**
     * 订单总金额
     */
    private BigDecimal sumMoney;

    /**
     * 支付金额
     */
    private BigDecimal payMoney;

    /**
     * 司机收益
     */
    private BigDecimal driveMoney;

    /**
     * 用户id
     */
    private Long userId;

    /**
     * 一级用户
     */
    private Long oneUserId;

    /**
     * 一级用户收益
     */
    private BigDecimal oneUserMoney;

    /**
     * 二级用户
     */
    private Long twoUserId;

    /**
     * 二级用户收益
     */
    private BigDecimal twoUserMoney;

    /**
     * 一级师傅
     */
    private Long oneDriverUserId;

    /**
     * 一级师傅收益
     */
    private BigDecimal oneDriverUserMoney;

    /**
     * 二级师傅
     */
    private Long twoDriverUserId;

    /**
     * 二级师傅收益
     */
    private BigDecimal twoDriverUserMoney;

    /**
     * 平台收益
     */
    private BigDecimal pingMoney;

    /**
     * 优惠券id
     */
    private Long couponId;

    /**
     * 优惠券名称
     */
    private String couponName;

    /**
     * 优惠券面值
     */
    private BigDecimal couponMoney;

    /**
     * 司机id
     */
    private Long driverId;

    /**
     * 司机id
     */
    private Long driverUserId;

    /**
     * 司机信息
     */
    @TableField(exist = false)
    private Driver driver;

    /**
     * 总公里数
     */
    private BigDecimal kmDistance;

    /**
     * 总米数
     */
    private BigDecimal distance;

    /**
     * 状态 1待支付 2待接单 3已接单 4进行中 5已抵达 6已取消
     */
    private Integer status;

    /**
     * 退款标识 1已退款
     */
    private Integer isRefund;

    /**
     * 支付方式 1微信小程序 2微信公众号 3微信app 4支付宝 5零钱 6线下
     */
    private Integer payWay;

    /**
     * 支付时间
     */
    private String payTime;

    /**
     * 下单时间
     */
    private String createTime;

    /**
     * 接单时间
     */
    private String takingTime;

    /**
     * 开始时间
     */
    private String startTime;

    /**
     * 完成时间
     */
    private String endTime;

    /**
     * 司机行程id
     */
    private Long driverRouteId;

    /**
     * 是否是一口价订单 1是
     */
    private Integer isFixedStroke;

    /**
     * 一口价行程id
     */
    private Long fixedStrokeId;

    /**
     * 司机行程对象
     */
    @TableField(exist = false)
    private DriverRoute driverRoute;

    /**
     * 顺路百分比
     */
    @TableField(exist = false)
    private BigDecimal similarity;

    /**
     * 起点距离
     */
    @TableField(exist = false)
    private BigDecimal startDistance;

    /**
     * 终点距离
     */
    @TableField(exist = false)
    private BigDecimal endDistance;

    /**
     * 师傅距离位置
     */
    @TableField(exist = false)
    private String riderDistance;

    /**
     * 接单司机 接单总数
     */
    @TableField(exist = false)
    private Integer ordersCount;

    /**
     * 下单用户名
     */
    @TableField(exist = false)
    private String userName;

    /**
     * 司机用户名
     */
    @TableField(exist = false)
    private String driverName;

    /**
     * 司机电话
     */
    @TableField(exist = false)
    private String driverNamePhone;

    @TableField(exist = false)
    private Integer browCount;



    public Orders() {}
}
