package com.ruoyi.system.domain;

import java.math.BigDecimal;
import java.util.Date;

import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.persistence.GeneratedValue;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * TaxiOrder对象 taxi_order
 * 
 * @author ruoyi
 * @date 2024-01-26
 */
@Data
@TableName(value = "taxi_order")
@EqualsAndHashCode(callSuper = false)
public class TaxiOrder
{
    private static final long serialVersionUID = 1L;

    @TableId(type = IdType.AUTO)
    @GeneratedValue
    /** id */
    private Long id;

    /** 订单id */
    @Excel(name = "订单id")
    private String ddId;

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

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

    /** 上车地址 */
    @Excel(name = "上车地址")
    private String boardingAddress;

    /** 上车经度 */
    private BigDecimal intoLongitude;

    /** 上车纬度 */
    private BigDecimal intoLatitude;

    /** 下车地址 */
    @Excel(name = "下车地址")
    private String downAddress;

    /** 下车经度 */
    private BigDecimal downLongitude;

    /** 下车维度 */
    private BigDecimal downLatitude;

    /** 路程距离 */
    @Excel(name = "路程距离")
    private Long distance;

    /** 订单状态 */
    @Excel(name = "订单状态")
    private String state;

    /** 订单类型 */
    @Excel(name = "订单类型")
    private String taxiType;

    /** 发布者id */
    private Long releaseId;

    /** 订单时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "订单时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date orderTime;

    /** 登车时间 */
    private String boardingTime;

    /** 下车时间 */
    private String alightingTime;

    /** 预约时间 */
    private String appointmentTime;

    /** 路程车费 */
    private BigDecimal fare;

    /** 高速公路费用 */
    private BigDecimal highwayCosts;

    /** 订单实制金额 */
    @Excel(name = "订单实制金额")
    private BigDecimal amount;

    /** 路上预计用时 */
    private String estimatedDuration;

    /** 备注 */
    private String notes;

    /** 优惠金额 */
    private BigDecimal coupon;

    /** 附近订单距离 */
    @Excel(name = "附近订单距离")
    private transient Double juli;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }
    public void setDdId(String ddId) 
    {
        this.ddId = ddId;
    }

    public String getDdId() 
    {
        return ddId;
    }
    public void setUserId(Long userId) 
    {
        this.userId = userId;
    }

    public Long getUserId() 
    {
        return userId;
    }
    public void setDriverId(Long driverId) 
    {
        this.driverId = driverId;
    }

    public Long getDriverId() 
    {
        return driverId;
    }
    public void setBoardingAddress(String boardingAddress) 
    {
        this.boardingAddress = boardingAddress;
    }

    public String getBoardingAddress() 
    {
        return boardingAddress;
    }
    public void setIntoLongitude(BigDecimal intoLongitude) 
    {
        this.intoLongitude = intoLongitude;
    }

    public BigDecimal getIntoLongitude() 
    {
        return intoLongitude;
    }
    public void setIntoLatitude(BigDecimal intoLatitude) 
    {
        this.intoLatitude = intoLatitude;
    }

    public BigDecimal getIntoLatitude() 
    {
        return intoLatitude;
    }
    public void setDownAddress(String downAddress) 
    {
        this.downAddress = downAddress;
    }

    public String getDownAddress() 
    {
        return downAddress;
    }
    public void setDownLongitude(BigDecimal downLongitude) 
    {
        this.downLongitude = downLongitude;
    }

    public BigDecimal getDownLongitude() 
    {
        return downLongitude;
    }
    public void setDownLatitude(BigDecimal downLatitude) 
    {
        this.downLatitude = downLatitude;
    }

    public BigDecimal getDownLatitude() 
    {
        return downLatitude;
    }
    public void setDistance(Long distance) 
    {
        this.distance = distance;
    }

    public Long getDistance() 
    {
        return distance;
    }
    public void setState(String state) 
    {
        this.state = state;
    }

    public String getState() 
    {
        return state;
    }
    public void setTaxiType(String taxiType) 
    {
        this.taxiType = taxiType;
    }

    public String getTaxiType() 
    {
        return taxiType;
    }
    public void setReleaseId(Long releaseId) 
    {
        this.releaseId = releaseId;
    }

    public Long getReleaseId() 
    {
        return releaseId;
    }
    public void setOrderTime(Date orderTime) 
    {
        this.orderTime = orderTime;
    }

    public Date getOrderTime() 
    {
        return orderTime;
    }
    public void setBoardingTime(String boardingTime) 
    {
        this.boardingTime = boardingTime;
    }

    public String getBoardingTime() 
    {
        return boardingTime;
    }
    public void setAlightingTime(String alightingTime) 
    {
        this.alightingTime = alightingTime;
    }

    public String getAlightingTime() 
    {
        return alightingTime;
    }
    public void setAppointmentTime(String appointmentTime) 
    {
        this.appointmentTime = appointmentTime;
    }

    public String getAppointmentTime() 
    {
        return appointmentTime;
    }
    public void setFare(BigDecimal fare) 
    {
        this.fare = fare;
    }

    public BigDecimal getFare() 
    {
        return fare;
    }
    public void setHighwayCosts(BigDecimal highwayCosts) 
    {
        this.highwayCosts = highwayCosts;
    }

    public BigDecimal getHighwayCosts() 
    {
        return highwayCosts;
    }
    public void setAmount(BigDecimal amount) 
    {
        this.amount = amount;
    }

    public BigDecimal getAmount() 
    {
        return amount;
    }
    public void setEstimatedDuration(String estimatedDuration) 
    {
        this.estimatedDuration = estimatedDuration;
    }

    public String getEstimatedDuration() 
    {
        return estimatedDuration;
    }
    public void setNotes(String notes) 
    {
        this.notes = notes;
    }

    public String getNotes() 
    {
        return notes;
    }
    public void setCoupon(BigDecimal coupon) 
    {
        this.coupon = coupon;
    }

    public BigDecimal getCoupon() 
    {
        return coupon;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("ddId", getDdId())
            .append("userId", getUserId())
            .append("driverId", getDriverId())
            .append("boardingAddress", getBoardingAddress())
            .append("intoLongitude", getIntoLongitude())
            .append("intoLatitude", getIntoLatitude())
            .append("downAddress", getDownAddress())
            .append("downLongitude", getDownLongitude())
            .append("downLatitude", getDownLatitude())
            .append("distance", getDistance())
            .append("state", getState())
            .append("taxiType", getTaxiType())
            .append("releaseId", getReleaseId())
            .append("orderTime", getOrderTime())
            .append("boardingTime", getBoardingTime())
            .append("alightingTime", getAlightingTime())
            .append("appointmentTime", getAppointmentTime())
            .append("fare", getFare())
            .append("highwayCosts", getHighwayCosts())
            .append("amount", getAmount())
            .append("estimatedDuration", getEstimatedDuration())
            .append("notes", getNotes())
            .append("coupon", getCoupon())
            .toString();
    }
}
