package com.fs.oms.param;

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

import java.io.Serializable;
import java.util.Date;

@Data
public class OmsInnerOrderParam extends OmsOrder implements Serializable {


    private Long id;

    /** 网店id */
    @Excel(name = "网店id")
    private Long storeId;

    /** 三方订单号 */
    @Excel(name = "三方订单号")
    private String outerOrderNo;

    /** 内部订单号 */
    @Excel(name = "内部订单号")
    private String innerOrderNo;

    /** 预占编码 */
    @Excel(name = "预占编码")
    private String preemptCode;

    /** 流转状态 0 异常 1正常 2待处理 */
    @Excel(name = "流转状态 0 异常 1正常 2待处理")
    private Integer circulationStatus;

    /** 流转异常原因 */
    @Excel(name = "流转异常原因")
    private String failureReason;

    /** 订单类型  0普通订单 1其他订单 */
    @Excel(name = "订单类型  0普通订单 1其他订单")
    private Integer orderType;

    /** 三方销售单来源  0接口抓取 1手工建单 */
    @Excel(name = "三方销售单来源  0接口抓取 1手工建单")
    private Integer orderSource;

    /** 内部销售单来源  0普通转单 1手工单  2复制单 */
    @Excel(name = "内部销售单来源  0普通转单 1手工单  2复制单")
    private Integer innerOrderSource;

    /** 平台订单状态 0未成交  1已成交 */
    @Excel(name = "平台订单状态 0未成交  1已成交")
    private Integer orderStatus;

    /** 内部订单状态 */
    @Excel(name = "内部订单状态")
    private Integer innerOrderStatus;


    /** 回写状态 0未回写 1回写成功  2回写失败 */
    @Excel(name = "回写状态 0未回写 1回写成功  2回写失败")
    private Integer syncStatus;

    /** 售后状态  0无售后 1售后处理中 2退款中 3退款成功 */
    @Excel(name = "售后状态  0无售后 1售后处理中 2退款中 3退款成功")
    private Integer refundStatus;

    /** 支付方式  0微信支付 1支付宝支付  3财付通  4连连支付  5网银在线  6货到付款 7银行汇款 8 其它 */
    @Excel(name = "支付方式  0微信支付 1支付宝支付  3财付通  4连连支付  5网银在线  6货到付款 7银行汇款 8 其它")
    private Integer payType;

    /** 支付状态  0无售后 1售后处理中 2退款中 3退款成功 */
    @Excel(name = "支付状态  0无售后 1售后处理中 2退款中 3退款成功")
    private Integer payStatus;

    /** 审核类型  0寻源前待审核   1发货前待审核 */
    @Excel(name = "审核类型  0寻源前待审核   1发货前待审核")
    private Integer auditType;

    /** 审核状态 1待一审  2一审不通过  3待二审  4二审不通过 5审核通过   */
    @Excel(name = "审核状态 1待一审  2一审不通过  3待二审  4二审不通过 5审核通过  ")
    private Integer auditStatus;

    /** 订单阶段 0三方销售单  1内部销售单 */
    @Excel(name = "订单阶段 0三方销售单  1内部销售单")
    private Integer orderStage;

    /** 有无赠品  0无  1有 */
    @Excel(name = "有无赠品  0无  1有")
    private Integer isGift;

    /** 商品数量 */
    @Excel(name = "商品数量")
    private Long goodsNum;

    /** 商品行数量 */
    @Excel(name = "商品行数量")
    private Long skuNum;

    /** 三方承担优惠金额 */
    @Excel(name = "三方承担优惠金额")
    private Long thirdDiscountAmount;

    /** 商家承担优惠金额 */
    @Excel(name = "商家承担优惠金额")
    private Long businessDiscountAmount;

    /** 优惠合计 */
    @Excel(name = "优惠合计")
    private Long totalDiscount;

    /** 商品总金额 */
    @Excel(name = "商品总金额")
    private Long totalAmount;

    /** 应收总金额 */
    @Excel(name = "应收总金额")
    private Long amountReceivable;

    /** 买家实付 */
    @Excel(name = "买家实付")
    private Long buyerPayAmount;

    /** $column.columnComment */
    @Excel(name = "买家实付")
    private Long buyerRealPrice;

    /** 物流方式  0不包邮  1卖家包邮 */
    @Excel(name = "物流方式  0不包邮  1卖家包邮")
    private Integer shippingType;

    /** 商品总成本 */
    @Excel(name = "商品总成本")
    private Long costAmount;

    /** 运费 */
    @Excel(name = "运费")
    private Long postage;

    /** 物流ids */
    @Excel(name = "物流id")
    private String logisticsId;

    /** 标签 */
    @Excel(name = "标签")
    private String tags;

    /** 标签 */
    @Excel(name = "skuCodes")
    private String skuCodes;

    /** 标签 */
    @Excel(name = "商品barCodes")
    private String barCodes;

    /** 买家昵称 */
    @Excel(name = "买家昵称")
    private String buyerNick;

    /** 买家备注 */
    @Excel(name = "买家备注")
    private String buyerRemark;

    /** 商家备注 */
    @Excel(name = "商家备注")
    private String orderRemark;

    /** 客服备注 */
    @Excel(name = "客服备注")
    private String serviceRemark;

    /** 支付单号 */
    @Excel(name = "支付单号")
    private String payNo;

    /** 发票类别 0无需开票 1电子发票 2增值税普通发票 3增值税专用发票 */
    @Excel(name = "发票类别 0无需开票 1电子发票 2增值税普通发票 3增值税专用发票")
    private Long invoiceStatus;

    /** 发票抬头 */
    @Excel(name = "发票抬头")
    private String invoiceTopic;

    /** 发票内容 */
    @Excel(name = "发票内容")
    private String invoiceContent;

    /** 发货状态  0初始 1全部待发货 2部分发货 3全部发货成功  4全部发货失败  */
    @Excel(name = "发货状态  0初始 1全部待发货 2部分发货 3全部发货成功  4全部发货失败 ")
    private Long deliveryStatus;

    /** 收货状态  0初始 1待收货  2部分收货  3全部已收货  */
    @Excel(name = "收货状态  0初始 1待收货  2部分收货  3全部已收货 ")
    private Long receivingStatus;

    /** 预占状态  0全部待预占 1部分预占  2全部预占成功  3全部预占失败  4取消预占   */
    @Excel(name = "预占状态  0全部待预占 1部分预占  2全部预占成功  3全部预占失败  4取消预占  ")
    private Long preemptionStatus;

    /** 寻源状态  0全部待寻源 1部分寻源 2全部寻源成功 3全部寻源失败  4取消寻源 */
    @Excel(name = "寻源状态  0全部待寻源 1部分寻源 2全部寻源成功 3全部寻源失败  4取消寻源")
    private Long sourceStatus;

    /** 挂起状态  0未挂起  1部分挂起  2全部挂起成功  4全部挂起失败 */
    @Excel(name = "挂起状态  0未挂起  1部分挂起  2全部挂起成功  4全部挂起失败")
    private Long suspendStatus;

    /** 预占回写状态 0全部待回写 1部分回写 2全部回写成功 3全部会写失败 */
    @Excel(name = "预占回写状态 0全部待回写 1部分回写 2全部回写成功 3全部会写失败")
    private Long syncPreempStatus;

    /** 发货回写状态  0全部待回写  1部分回写  2全部回写成功 3全部回写失败 */
    @Excel(name = "发货回写状态  0全部待回写  1部分回写  2全部回写成功 3全部回写失败")
    private Long syncDeliveryStatus;

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

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

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

    /** 物流打包时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "物流打包时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date lastShipTime;

    /** 预计发货时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "预计发货时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date predictDeliveryTime;

    /** 确认收货时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "确认收货时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date receiveTime;

    /** 创建人ID */
    @Excel(name = "创建人ID")
    private Long createUserId;

    /** 修改人ID */
    @Excel(name = "修改人ID")
    private Long updateUserId;


    private Integer channelType;

    private String logisticsUserName;

    private String logisticsUserPhone;
}
