package com.fs.erp.dto.wdt;

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

/**
 * 旺店通开放平台 API 订单信息 DTO
 * @author xdd
 * @date 2025-02-27
 */
@Data
public class ErpWdtTrade {

    /**
     * 原始单号
     * <p>指商城、官网等平台的订单编号，ERP称之为原始单号，同一个sid下通过本接口新增订单的tid保证唯一。</p>
     */
    private String tid;

    /**
     * 平台状态
     * <p>平台订单状态较多且涉及变更，详情介绍单击这里</p>
     */
    private Integer tradeStatus;

    /**
     * 支付状态
     * <p>平台订单付款状态:0:未付款,1:部分付款,2:已付款</p>
     */
    private Integer payStatus;

    /**
     * 发货条件
     * <p>1:款到发货,2:货到付款(包含部分货到付款),3:分期付款,4:挂账</p>
     */
    private Integer deliveryTerm;

    /**
     * 下单时间
     * <p>平台订单创建时间,时间格式：yyyy-MM-dd HH:mm:ss</p>
     */
    private String tradeTime;

    /**
     * 支付时间
     * <p>平台订单付款时间,时间格式：yyyy-MM-dd HH:mm:ss，未付款订单为:0000-00-00 00:00:00</p>
     */
    private String payTime;

    /**
     * 分销类别
     */
    private Integer fenxiaoType;
    /**
     * 采购单ID
     */
    private String purchaseId;

    private  String fenxiaoNick;
    /**
     * 	客户网名
     */
    private String buyerNick;

    private String buyerEmail;

    private String payId;
    private String payAccount;
    /**
     * 支付方式:  1在线支付 2现金，3银行转账，4邮局汇款 5预付款 6刷卡 7支付宝 8微信支付  不传默认为1 在线支付
     */
    private Integer payMethod;
    private String receiverName;
    private String receiverProvince;
    private String receiverCity;
    private String receiverDistrict;
    private String receiverAddress;
    private String receiverMobile;
    private String receiverTelno;
    private String receiverZip;
    /**
     * 物流方式
     * <p>不传本参数，输入值默认-1，表示由ERP系统策略选择。平台指定订单发货物流可选输入值单击这里</p>
     */
    private Integer logisticsType;

    /**
     * 发票类别
     * <p>0:不需要,1:普通发票,2:增值税普通发票电子,3:增值税普通发票纸质,4:增值税专用发票</p>
     */
    private Integer invoiceKind;

    /**
     * 发票抬头
     */
    private String invoiceTitle;

    /**
     * 发票内容
     * <p>常见内容：纳税人识别号、地址、电话、开户银行、银行账户，按照以下格式推送，系统开发票时可解析。</p>
     * <p>推送格式：纳税人识别号:xxxxxxxxxxx;地址:xxxxxxxx 13888888888;开户银行:银行名称 银行账户;</p>
     * <p>英文分号以后是地址，地址后面是空格，空格后面是电话，电话后面是英文分号，分号以后是开户行，然后空格，然后是银行账号</p>
     */
    private String invoiceContent;
    /**
     * 客户备注标旗，取值0至5对应的标旗颜色依次为灰（无标旗）、红、黄、绿、蓝、紫，不传默认0
     */
    private Integer remarkFlag;

    /**
     * 买家备注
     * <p>买家下单时填写的订单备注</p>
     */
    private String buyerMessage;

    /**
     * 客服备注
     * <p>商家客服对订单进行的备注内容</p>
     */
    private String sellerMemo;

    /**
     * 标旗
     * <p>客服标旗，取值0至5对应的标旗颜色依次为灰（无标旗）、红、黄、绿、蓝、紫，不传默认0</p>
     */
    private Integer sellerFlag;

    /**
     * 邮费
     * <p>商家收取买家的物流或者快递费用</p>
     */
    private BigDecimal postAmount;

    /**
     * 货到付款金额
     * <p>货到付款金额   cod金额=(price * num + adjust_amount -discount – share_discount）+post_amount+ext_cod_fee-paid</p>
     */
    private BigDecimal codAmount;

    /**
     * 货到付款买家费用
     * <p>货到付款买家费用，扣除货到付款订单金额后，卖家仍需支付的货到付款其他金额。这个钱卖家收不回来，是快递公司直接收走，但在快递单里是要打印出来，否则快递收款就错了</p>
     */
    private BigDecimal extCodFee;

    /**
     * 其它收费
     * <p>其它应从买家收取的服务费，其他费用</p>
     */
    private BigDecimal otherAmount;

    /**
     * 已付
     * <p>订单已付金额，paid计算公式：paid = Σ(price * num + adjust_amount -discount – share_discount）+ post_amount+other_amount，所有金额相关字段推送处理办法，单击这里</p>
     */
    private BigDecimal paid;

    /**
     * 证件类型
     * <p>1:身份证（不传默认为0，为0时将证件号码置空）</p>
     */
    private Integer idCardType;

    /**
     * 证件号码
     */
    private String idCard;

    /**
     * 自动流转模式
     * <p>是否为自动流转模式（1：是 0：不是 不传默认0），非自动流转模式一定不要传值。自动流转模式处理办法，”自动流转模式处理办法详解”)单击这里</p>
     */
    private Integer isAutoWms;

    /**
     * 仓库类型
     * <p>非自动流转模式一定不要传值</p>
     */
    private Integer wmsType;

    /**
     * 仓库编号
     * <p>ERP内自定义的仓库编号，查看路径ERP→设置→基本设置→仓库→仓库列表，测试环境仓库编号查看测试环境分配邮件。平台订单需指定ERP内仓库时，传哪个仓库的编号，ERP将为订单选择哪个仓库。</p>
     */
    private String warehouseNo;

    /**
     * 订单货品明细节点
     * <p>货品明细列表（子订单列表）节点</p>
     */
    private List<ErpWdtOrder> orderList;
}
