package com.fs.store.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fs.common.annotation.Excel;
import lombok.Data;

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

/**
 * 订单对象 fs_store_order
 *
 * @author fs
 * @date 2022-03-15
 */
@Data
public class FsStoreOrderExportVO implements Serializable
{
    private static final long serialVersionUID = 1L;

    /** 订单ID */
    private Long id;

    /** 订单号 */
    @Excel(name = "订单号")
    private String orderCode;
    @Excel(name = "会员ID")
    private Long userId;
    /** 额外订单号 */
    @Excel(name = "管易云订单号")
    private String extendOrderId;

    @Excel(name = "所属公司")
    private String companyName;
    @Excel(name = "所属销售")
    private String companyUserNickName;

    @Excel(name = "推线编号")
    private String pushCode;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "客户创建时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date customerCreateTime;

    @Excel(name = "客户来源",dictType = "crm_customer_source")
    private String source;

    @Excel(name = "成单类型", dictType = "store_order_type")
    private String orderType;



    /** 用户姓名 */
    @Excel(name = "收货人姓名")
    private String realName;

    /** 用户电话 */
    @Excel(name = "收货人电话")
    private String userPhone;

    /** 详细地址 */
    @Excel(name = "详细地址")
    private String userAddress;

//    /** 购物车id */
//    private String cartId;
//
//    /** 运费金额 */
//    private BigDecimal freightPrice;
//
//    /** 订单商品总数 */
//    private Long totalNum;

    /** 订单总价 */
    @Excel(name = "商品金额",cellType= Excel.ColumnType.NUMERIC)
    private BigDecimal totalPrice;

//    /** 邮费 */
//    private BigDecimal totalPostage;

    /** 实际支付金额 */
    @Excel(name = "应付金额",cellType= Excel.ColumnType.NUMERIC)
    private BigDecimal payPrice;

    @Excel(name = "实付金额",cellType= Excel.ColumnType.NUMERIC)
    private BigDecimal payMoney;

    @Excel(name = "物流代收金额",cellType= Excel.ColumnType.NUMERIC)
    private BigDecimal payDelivery;




//    /** 支付邮费 */
//    private BigDecimal payPostage;

    /** 抵扣金额 */
    @Excel(name = "抵扣金额",cellType= Excel.ColumnType.NUMERIC)

    private BigDecimal deductionPrice;

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

    /** 优惠券金额 */
    @Excel(name = "优惠券金额",cellType= Excel.ColumnType.NUMERIC)
    private BigDecimal couponPrice;

//    /** 支付状态 */
//    private Integer paid;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "下单时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;
    /** 支付时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "支付时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date payTime;

    /** 支付方式 */
    @Excel(name = "支付方式")
    private String payType;

    /** 订单状态（-1 : 申请退款 -2 : 退货成功 0：待发货；1：待收货；2：已收货；3：已完成；-1：已退款） */
    @Excel(name = "订单状态", dictType = "store_order_status")
    private String status;

//    /** 0 未退款 1 申请中 2 已退款 */
////    @Excel(name = "0 未退款 1 申请中 2 已退款")
//    private Integer refundStatus;
//
//    /** 退款图片 */
////    @Excel(name = "退款图片")
//    private String refundReasonWapImg;
//
//    /** 退款用户说明 */
////    @Excel(name = "退款用户说明")
//    private String refundReasonWapExplain;

    /** 退款时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "退款时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date refundReasonTime;

//    /** 前台退款原因 */
////    @Excel(name = "前台退款原因")
//    private String refundReasonWap;
//
//    /** 不退款的理由 */
////    @Excel(name = "不退款的理由")
//    private String refundReason;

    /** 退款金额 */
    @Excel(name = "退款金额",cellType= Excel.ColumnType.NUMERIC)
    private BigDecimal refundPrice;

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

    /** 快递名称/送货人姓名 */
    @Excel(name = "快递公司")
    private String deliveryName;

    /** 快递单号/手机号 */
    @Excel(name = "快递单号")
    private String deliveryId;

//    /** 消费赚取积分 */
//    private BigDecimal gainIntegral;
//
//    /** 使用积分 */
//    private BigDecimal useIntegral;
//
//    /** 实际支付积分 */
//    private BigDecimal payIntegral;

//    /** 给用户退了多少积分 */
//    private BigDecimal backIntegral;

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

//    /** 是否删除 */
//    private Integer isDel;
//
//    /** 成本价 */
//    private BigDecimal cost;
//
//    /** 核销码 */
//    private String verifyCode;
//
//    /** 门店id */
//    private Long storeId;
//
//    /** 配送方式 1=快递 ，2=门店自提 */
//    private Integer shippingType;
//
//    /** 支付渠道(0微信公众号1微信小程序) */
//    private Integer isChannel;
//
//    /** 是否提醒 */
//    private Integer isRemind;
//
//    /** 是否系统删除 */
//    private Integer isSysDel;
//
//    private String nickname;
//
    private String phone;
//
//
//    private Date finishTime;
//
//    private Integer isPackage;
//
//    private List<FsStoreOrderItemVO> items;


    @Excel(name = "物流代收结算状态", dictType = "store_delivery_pay_status")
    private Integer deliveryPayStatus;

    @Excel(name = "快递帐单日期")
    private String deliveryTime;

    @Excel(name = "快递结算日期")
    private String deliveryPayTime;

    @Excel(name = "物流结算费用")
    private BigDecimal deliveryPayMoney;

    @Excel(name = "物流状态" , dictType = "store_order_delivery_status")
    private String deliveryStatus;

    @Excel(name = "物流跟踪状态" , dictType = "store_order_delivery_type")
    private String deliveryType;

    @Excel(name = "客户编码")
    private String customerCode;

    @Excel(name = "套餐名称",width = 60)
    private String packageTitle;

    @Excel(name = "是否上传凭证 0：未上传 1：已上传")
    private Integer isUpload;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "上传时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date uploadTime;

    @Excel(name = "归属档期")
    private String scheduleName;
}
