package com.sqx.modules.artificer.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.sqx.modules.coupon.entity.CouponUser;
import lombok.Data;

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

/**
 * @description orders
 * @author fang
 * @date 2021-12-18
 */
@Data
public class Orders implements Serializable {

    private static final long serialVersionUID = 1L;

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

    /**
     * 技师id
     */
    private Long artificerId;

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

    /**
     * 服务时间
     */
    private String serveTime;

    /**
     * 联系电话
     */
    private String phone;

    /**
     * 地址
     */
    private String address;

    /**
     * 开始服务地址
     */
    private String startAddress;

    /**
     * 完成服务地址
     */
    private String accomplishAddress;

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

    /**
     * 是否是超时订单 1是 2不是
     */
    private Integer overTimeOrders;

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

    /**
     * 实付总金额
     */
    @TableField(exist = false)
    private BigDecimal payMoneyTotal;

    /**
     * 技师获取总金额
     */
    @TableField(exist = false)
    private BigDecimal artificerMoneyTotal;

    /**
     * 总业绩
     */
    @TableField(exist = false)
    private BigDecimal priceTotal;


    /**
     * 服务费用
     */
    private BigDecimal price;

    /**
     * 技师价格
     */
    private BigDecimal artificerMoney;


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

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

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

    /**
     * 状态 1待支付 2待服务 3待评论 4已取消  5已完成  6进行中  7技师出发 8技师到达 9用户已支付技师待接单 10待补单
     */
    private Integer status;

    /**
     * 技师出发时间
     */
    private String artificerStartTime;

    /**
     * 技师到达时间
     */
    private String artificerEndTime;

    /**
     * 经度
     */
    private String longitude;

    /**
     * 纬度
     */
    private String latitude;

    private String startLongitude;

    private String startLatitude;

    /**
     * 创建时间
     */
    private String createTime;

    /**
     * 加钟次数
     */
    private Integer addNum;

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

    /**
     * 加钟时长
     */
    private Integer addTime;

    /**
     * 加钟价格
     */
    private BigDecimal addPrice;

    /**
     * 加钟项目ID
     */
    private Long addMassageTypeId;

    /**
     * 加钟项目名称
     */
    private String addEntryName;

    /**
     * 加钟金额
     */
    private BigDecimal addMoney;
    /**
     * 加钟技师加成后的价格
     */
    private BigDecimal addPriceMarkup;
    /**
     * 加钟技师加成金额
     */
    private BigDecimal addTechnicianMoney;
    /**
     * 加钟会员减免金额
     */
    private BigDecimal addVipReductionMoney;

    /**
     * 加钟项目收益
     */
    private BigDecimal addProjectBenefits;

    /**
     * 加钟技师价
     */
    private BigDecimal addArtificerMoney;

    /**
     * 技师总收益
     */
    private BigDecimal sumArtificerMoney;

    /**
     * 出行费用
     */
    private BigDecimal taxiMoney;

    /**
     * 正常出行费用
     */
    private BigDecimal usualTravelMoney;

    /**
     * 夜间出行费用
     */
    private BigDecimal nightTravelMoney;

    //技师打车费
    private BigDecimal artificerTaxiMoney;
    //平台扣除打车费
    private BigDecimal pingTaxiMoney;

    /**
     * 出行方式 1公交 2出租 3免费
     */
    private Integer tripWay;

    /**
     * 全程公里
     */
    private String km;

    /**
     * 上级id 加钟项目
     */
    private Long parentId;

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

    /**
     * 开始服务图片
     */
    private String startImg;

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

    /**
     * 优惠券金额
     */
    private BigDecimal couponMoney;

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

    /**
     * 服务完成时间
     */
    private String endTimes;

    /**
     * 服务预估完成时间
     */
    private String endTime;

    private Integer isSend;

    /**
     * 一级推广用户佣金
     */
    private BigDecimal oneUserMoney;

    private Long oneUserId;

    private String oneUserName;

    /**
     * 一级推广技师佣金
     */
    private BigDecimal oneArtificerMoney;

    private Long oneArtificerUserId;

    private String oneArtificerUserName;

    private BigDecimal shopMoney;

    private Long shopUserId;

    private String shopUserName;

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

    /**
     * 服务id
     */
    private Long massageTypeId;

    private Long consortiaId;

    /**
     * 师傅完成经度
     */
    private String accomplishLongitude;

    /**
     * 师傅完成纬度
     */
    private String accomplishLatitude;

    /**
     * 是否是警告订单 1是
     */
    private Integer warning;

    /**
     * 是否是储蓄金支付 1是  -- 暂无用
     */
    private Integer userArtificerMoney;
    /**
     * 技师分成比例
     */
    private BigDecimal artificerRate;
    /**
     * 渠道扣费
     */
    private BigDecimal channelDeduction;
    /**
     * 储值扣费
     */
    private BigDecimal valueStorageDeduction;
    /**
     * 项目收益
     */
    private BigDecimal projectBenefits;
    /**
     * 原项目收益
     */
    private BigDecimal oldProjectBenefits;
    /**
     * 用户服务包ID
     */
    private Long userPackageId;
    /**
     * 用户服务包明细ID
     */
    private Long userPackageDetailId;

    /**
     * 服务包类型
     */
    @TableField(exist = false)
    private Integer packageType;

    /**
     * 会员优惠比例
     */
    private BigDecimal vipRate;
    /**
     * 技师等级
     */
    private Integer technicianType;
    /**
     * 技师等级加成比例
     */
    private BigDecimal technicianRate;
    /**
     * 项目金额
     */
    private BigDecimal massageMoney;

    /**
     * 项目金额减代金卷之前
     */
    @TableField(exist = false)
    private BigDecimal massageCouponMoney;

    /**
     * 拒单内容
     */
    private String refusalContent;
    /**
     * 订单提前结束原因
     */
    private String earlyFinishReason;
    /**
     * 是否是待补单生成 1是 2否-修改单据产生
     */
    private Integer isSupplement;
    /**
     * 原订单ID
     */
    private Long oldOrdersId;
    /**
     * 原项目金额
     */
    private BigDecimal oldMassageMoney;
    /**
     * 原支付金额
     */
    private BigDecimal oldPayMoney;
    /**
     * 原技师金额
     */
    private BigDecimal oldArtificerMoney;

    /**
     * 技师完成服务承诺  多个按照逗号分割
     */
    private String jsFwcn;
    /**
     * 技师评价标签 多个按照逗号分割
     */
    private String jsPjtag;
    /**
     * 技师特殊备注
     */
    private String jsTsbz;

    /**
     * 项目单价
     */
    private BigDecimal massagePrice;

    /**
     * 项目数量
     */
    private Integer massageNum;

    /**
     * 项目时长
     */
    private Integer duration;
    /**
     * 原项目ID
     */
    private Long oldMassageTypeId;
    /**
     * 原项目名称
     */
    private String oldEntryName;
    /**
     * 原项目金额
     */
    private BigDecimal oldMassagePrice;
    /**
     * 原项目数量
     */
    private Integer oldMassageNum;
    /**
     * 原项目时长
     */
    private Integer oldMassageDuration;

    /**
     * 取消描述
     */
    private String cancelRemark;

    /**
     * 用户钱包支付技师提成百分比
     */
    private BigDecimal walletRate;
    /**
     * 项目名称
     */
    private String entryName;

    private String startRemark;

    /**
     * 选择技师后，计算完技师加成后的价格
     */
    private BigDecimal priceMarkup;
    /**
     * 原技师加成后的价格
     */
    private BigDecimal oldPriceMarkup;
    /**
     * 技师加成金额
     */
    private BigDecimal technicianMoney;
    /**
     * 原技师加成金额
     */
    private BigDecimal oldTechnicianMoney;
    /**
     * VIP减免价格
     */
    private BigDecimal vipReductionMoney;
    /**
     * 原VIP减免价格
     */
    private BigDecimal oldVipReductionMoney;

    @TableField(exist = false)
    private List<OrdersMassage> ordersMassageList;
    @TableField(exist = false)
    private List<OrdersMassage> oldOrdersMassageList;

    @TableField(exist = false)
    private Artificer artificer;

    @TableField(exist = false)
    private String artificerName;

    /**
     * 分类id 91 精油 95 中医
     */

    @TableField(exist = false)
    private Long classifyId;

    @TableField(exist = false)
    private String artificerPhone;

    @TableField(exist = false)
    private String artificerImg;

    private String userName;

    @TableField(exist = false)
    private String artificerUserId;

    @TableField(exist = false)
    private String title;

    @TableField(exist = false)
    private String massageImg;

    @TableField(exist = false)
    private MassageType massageType;

    @TableField(exist = false)
    private String city;

    @TableField(exist = false)
    private String artificerLongitude;

    @TableField(exist = false)
    private String artificerLatitude;

    @TableField(exist = false)
    private String artificerAddress;

    @TableField(exist = false)
    private String shopName;

    @TableField(exist = false)
    private String shopAddress;

    @TableField(exist = false)
    private String shopPhone;


    @TableField(exist = false)
    private String userRecharge;

    @TableField(exist = false)
    private String jzName;
    @TableField(exist = false)
    private String gjName;
    @TableField(exist = false)
    private BigDecimal gjPrice;
    @TableField(exist = false)
    private BigDecimal gjcePrice;

    @TableField(exist = false)
    private String jifen;
    @TableField(exist = false)
    private String jftime;
    @TableField(exist = false)
    private List<CouponUser> couponUserList;

    @TableField(exist = false)
    private Integer isCanSupplement;
    @TableField(exist = false)
    private String jzl;
    @TableField(exist = false)
    private String czl;
    @TableField(exist = false)
    private String zxsc;

    /**
     * 经纪人分佣
     */
    private BigDecimal jjrMoney;
    /**
     * 经纪人ID
     */
    private Long jjrUserId;
    /**
     * 经纪人姓名
     */
    private String jjrUserName;

    public Orders() {}
}
