package com.alipay.api.domain;

import com.alipay.api.AlipayObject;
import com.alipay.api.internal.mapping.ApiField;

/**
 * 报关记录详情数据结构
 *
 * @author auto create
 * @since 1.0, 2016-11-09 19:11:58
 */
public class CustomsDeclareRecordInfo extends AlipayObject {

    private static final long serialVersionUID = 4862458671744593479L;

    /**
     * 支付宝报关流水号。
     */
    @ApiField("alipay_declare_no")
    private String alipayDeclareNo;

    /**
     * 报关金额，单位为人民币“元”，精确到小数点后2位。
     */
    @ApiField("amount")
    private String amount;

    /**
     * 此记录所报关的海关编号，参见“海关编号”。
     */
    @ApiField("customs_place")
    private String customsPlace;

    /**
     * 发起报关后，海关返回回执中的结果码。目前只有总署的报关，并且总署回执接收成功的请求才会返回此参数
     * 2：电子口岸申报中
     * 3：发送海关成功
     * 4：发送海关失败
     * 100：海关退单
     * 399：海关审结
     * 小于0的数字：表示处理异常回执
     * 注意：
     * 支付宝原样返回海关返回的数据，参数值以海关的定义为准。
     */
    @ApiField("customs_result_code")
    private String customsResultCode;

    /**
     * 发起报关后，海关返回回执中的结果描述信息。目前只有总署报关，并且总署成功返回回执的时候会有此值
     */
    @ApiField("customs_result_info")
    private String customsResultInfo;

    /**
     * 发起报关后，海关返回回执的时间，格式为：yyyyMMddHHmmss。目前只有总署报关，并且总署成功返回回执的时候才会有此参数。
     */
    @ApiField("customs_result_return_time")
    private String customsResultReturnTime;

    /**
     * T: 拆单；F：非拆单。当请求没有拆单或者请求传入的is_split=F时，不会返回此参数。
     */
    @ApiField("is_split")
    private String isSplit;

    /**
     * 报关记录状态最后更新时间
     */
    @ApiField("last_modified_time")
    private String lastModifiedTime;

    /**
     * 备注说明
     */
    @ApiField("memo")
    private String memo;

    /**
     * 商户在海关备案的编号。
     */
    @ApiField("merchant_customs_code")
    private String merchantCustomsCode;

    /**
     * 商户海关备案名称
     */
    @ApiField("merchant_customs_name")
    private String merchantCustomsName;

    /**
     * 报关请求号。商户端报关请求号，对应入参中的某条报关请求号。
     */
    @ApiField("out_request_no")
    private String outRequestNo;

    /**
     * 该报关单当前的状态：
     * -	ws等待发送海关
     * -	sending已提交发送海关
     * -	succ 海关返回受理成功
     */
    @ApiField("status")
    private String status;

    /**
     * 拆单子订单号。如果报关请求没有请求拆单则不会返回此参数。
     */
    @ApiField("sub_out_biz_no")
    private String subOutBizNo;

    /**
     * 支付宝推送到海关的支付单据号。针对拆单的报关，这个单据号不等于支付宝原始交易号。
     */
    @ApiField("trade_no")
    private String tradeNo;

    public String getAlipayDeclareNo() {
        return this.alipayDeclareNo;
    }

    public void setAlipayDeclareNo(String alipayDeclareNo) {
        this.alipayDeclareNo = alipayDeclareNo;
    }

    public String getAmount() {
        return this.amount;
    }

    public void setAmount(String amount) {
        this.amount = amount;
    }

    public String getCustomsPlace() {
        return this.customsPlace;
    }

    public void setCustomsPlace(String customsPlace) {
        this.customsPlace = customsPlace;
    }

    public String getCustomsResultCode() {
        return this.customsResultCode;
    }

    public void setCustomsResultCode(String customsResultCode) {
        this.customsResultCode = customsResultCode;
    }

    public String getCustomsResultInfo() {
        return this.customsResultInfo;
    }

    public void setCustomsResultInfo(String customsResultInfo) {
        this.customsResultInfo = customsResultInfo;
    }

    public String getCustomsResultReturnTime() {
        return this.customsResultReturnTime;
    }

    public void setCustomsResultReturnTime(String customsResultReturnTime) {
        this.customsResultReturnTime = customsResultReturnTime;
    }

    public String getIsSplit() {
        return this.isSplit;
    }

    public void setIsSplit(String isSplit) {
        this.isSplit = isSplit;
    }

    public String getLastModifiedTime() {
        return this.lastModifiedTime;
    }

    public void setLastModifiedTime(String lastModifiedTime) {
        this.lastModifiedTime = lastModifiedTime;
    }

    public String getMemo() {
        return this.memo;
    }

    public void setMemo(String memo) {
        this.memo = memo;
    }

    public String getMerchantCustomsCode() {
        return this.merchantCustomsCode;
    }

    public void setMerchantCustomsCode(String merchantCustomsCode) {
        this.merchantCustomsCode = merchantCustomsCode;
    }

    public String getMerchantCustomsName() {
        return this.merchantCustomsName;
    }

    public void setMerchantCustomsName(String merchantCustomsName) {
        this.merchantCustomsName = merchantCustomsName;
    }

    public String getOutRequestNo() {
        return this.outRequestNo;
    }

    public void setOutRequestNo(String outRequestNo) {
        this.outRequestNo = outRequestNo;
    }

    public String getStatus() {
        return this.status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public String getSubOutBizNo() {
        return this.subOutBizNo;
    }

    public void setSubOutBizNo(String subOutBizNo) {
        this.subOutBizNo = subOutBizNo;
    }

    public String getTradeNo() {
        return this.tradeNo;
    }

    public void setTradeNo(String tradeNo) {
        this.tradeNo = tradeNo;
    }

}
