package com.ruoyi.mall.domain;

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

import com.ruoyi.mall.domain.dto.MallAppOrderGoodsDTO;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;

/**
 * app-线下订单对象 mall_app_order_order
 *
 * @author ruoyi
 * @date 2024-06-29
 */
@Setter
@Getter
@ToString
public class MallAppOrderOrder extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 线下订单主键ID */
    private Long id;

    /** 订单号 */
    @Excel(name = "订单号")
    private String orderNo;

    /** 会员ID */
    @Excel(name = "会员ID")
    private Long userId;

    /** 订单类型：3-线下订单 */
    @Excel(name = "订单类型：3-线下订单")
    private Integer orderType;

    /** 邮费 */
    @Excel(name = "邮费")
    private BigDecimal postFee;

    /** 订单原价 */
    @Excel(name = "订单原价")
    private BigDecimal orderPrice;

    /** 实付金额 */
    @Excel(name = "实付金额")
    private BigDecimal payment;

    /** 优惠金额 */
    @Excel(name = "优惠金额")
    private BigDecimal discountPrice;

    /** 提成金额 */
    @Excel(name = "提成金额")
    private BigDecimal commissionPrice;

    /** 商品总件数 */
    @Excel(name = "商品总件数")
    private String goodsNum;

    /** 商品总重量 */
    @Excel(name = "商品总重量")
    private String goodsWeight;

    /** 商品总体积 */
    @Excel(name = "商品总体积")
    private String goodsVolume;

    /** 配送方式：0-快递，1-自提 */
    @Excel(name = "配送方式：0-快递，1-自提")
    private String deliveryType;

    /** 订单状态：0-未付款，1-已付款，2-待接单，3-待发货，4-已装车，5-已完成，,8-已取消 */
    @Excel(name = "订单状态：0-未付款，1-已付款，2-待接单，3-待发货，4-已装车，5-已完成，,8-已取消")
    private String status;

    /** 是否支付：0-未支付，1-已支付 */
    @Excel(name = "是否支付：0-未支付，1-已支付")
    private String isPay;

    /** 支付类型：0-未支付，1-微信，2-支付宝，3-银行转账，4-线下支付，5-其他 */
    @Excel(name = "支付类型：0-未支付，1-微信，2-支付宝，3-银行转账，4-线下支付，5-其他")
    private String payType;

    /** 是否上传凭证：0-未上传，1-已上传 */
    @Excel(name = "是否上传凭证：0-未上传，1-已上传")
    private String isProof;

    /** 支付凭证 */
    @Excel(name = "支付凭证")
    private String payProof;

    /** 是否装车：0-未装车，1-已装车 */
    @Excel(name = "是否装车：0-未装车，1-已装车")
    private String isCar;

    /** 装车视频 */
    @Excel(name = "装车视频")
    private String carVideo;

    /** 下单人ID */
    private Long orderUserId;

    /** 下单时间 */
    @Excel(name = "下单时间")
    private String createAt;

    /** 上传支付凭证时间 */
    @Excel(name = "上传支付凭证时间")
    private String proofAt;

    /** 支付时间 */
    @Excel(name = "支付时间")
    private String payAt;

    /** 管理是否审核：0-未审核，1-已审核 */
    @Excel(name = "管理是否审核：0-未审核，1-已审核")
    private String isExamine;

    /** 审核时间 */
    @Excel(name = "审核时间")
    private String examineAt;

    /** 财务是否审核：0-未审核，1-已审核 */
    @Excel(name = "财务是否审核：0-未审核，1-已审核")
    private String isFinance;

    /** 财务审核时间 */
    @Excel(name = "财务审核时间")
    private String financeExamineAt;

    /** 接单时间 */
    @Excel(name = "接单时间")
    private String receiveAt;

    /** 装车时间 */
    @Excel(name = "装车时间")
    private String carAt;

    /** 确认收货时间 */
    @Excel(name = "确认收货时间")
    private String enterAt;

    /** 退货时间 */
    @Excel(name = "退货时间")
    private String returnAt;

    /** 取消时间 */
    @Excel(name = "取消时间")
    private String cancelAt;

    /** 完成时间 */
    @Excel(name = "完成时间")
    private String completeAt;

    /** 快递公司代号 */
    @Excel(name = "快递公司代号")
    private String shippingMark;

    /** 物流名称 */
    @Excel(name = "物流名称")
    private String shippingName;

    /** 物流单号 */
    @Excel(name = "物流单号")
    private String shippingCode;

    /** 是否申请退款：0-否，1-是 */
    @Excel(name = "是否申请退款：0-否，1-是")
    private String isRefund;

    /** 寄件人地址ID */
    private Long senderAddressId;

    /** 收件人地址ID */
    private Long receiverAddressId;

    /** 寄件人姓名 */
    @Excel(name = "寄件人姓名")
    private String senderName;

    /** 寄件人电话 */
    @Excel(name = "寄件人电话")
    private String senderPhone;

    /** 寄件人省份 */
    @Excel(name = "寄件人省份")
    private String senderProvince;

    /** 寄件人城市 */
    @Excel(name = "寄件人城市")
    private String senderCity;

    /** 寄件人区县 */
    @Excel(name = "寄件人区县")
    private String senderArea;

    /** 寄件人地址 */
    @Excel(name = "寄件人地址")
    private String senderAddress;

    /** 收件人姓名 */
    @Excel(name = "收件人姓名")
    private String receiverName;

    /** 收件人电话 */
    @Excel(name = "收件人电话")
    private String receiverPhone;

    /** 收件人省份 */
    @Excel(name = "收件人省份")
    private String receiverProvince;

    /** 收件人城市 */
    @Excel(name = "收件人城市")
    private String receiverCity;

    /** 收件人区县 */
    @Excel(name = "收件人区县")
    private String receiverArea;

    /** 收件人地址 */
    @Excel(name = "收件人地址")
    private String receiverAddress;

    /** 是否修改过收货地址：0-否，1-是 */
    @Excel(name = "是否修改过收货地址：0-否，1-是")
    private String isChangeAddress;

    /** 年 */
    @Excel(name = "年")
    private String year;

    /** 月 */
    @Excel(name = "月")
    private String month;

    /** 日 */
    @Excel(name = "日")
    private String day;

    /** 相关人员ID */
    @Excel(name = "相关人员ID")
    private Long resId;

    /** 相关人员名 */
    @Excel(name = "相关人员名")
    private String resName;

    /** 业务员ID */
    @Excel(name = "业务员ID")
    private Long salesmanId;

    /** 业务员名 */
    private String salesmanName;

    /** 分公司管理员ID */
    @Excel(name = "分公司管理员ID")
    private Long companyManageId;

    /** 仓库管理员ID */
    @Excel(name = "仓库管理员ID")
    private Long warehouseManageId;

    /** 仓库管理员姓名 */
    private String warehouseManageName;

    /** 财务ID */
    @Excel(name = "财务ID")
    private Long financeId;

    /** 买家留言 */
    @Excel(name = "买家留言")
    private String buyerMsg;

    /** 备注 */
    @Excel(name = "备注")
    private String remarks;

    /** 内容 */
    @Excel(name = "内容")
    private String content;

    /** 删除标记：0-正常，1-删除 */
    @Excel(name = "删除标记：0-正常，1-删除")
    private String delFlag;

    /** app-线下订单商品列表 */
    private List<MallAppOrderGoods> appOrderGoodsDTOList;

    /** 业务员信息 */
    private MallAppCompanyUser salesmanInfo;

}
