package com.brilliance.isc.vo.model;


import com.brilliance.mda.runtime.mda.util.Decimals;
import com.brilliance.isc.common.vo.AbstractCommonVo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.Data;

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

import static com.brilliance.mda.runtime.mda.Constants.NULLDATE;
import static com.brilliance.mda.runtime.mda.Constants.NULLSTR;

@Data
@JsonIgnoreProperties
public class TdbVo extends AbstractCommonVo implements Serializable {
    /**
     * 内部唯一流水号主键
     */
    private String inr = NULLSTR;

    /**
     * 版本号
     */
    private String ver = NULLSTR;

    /**
     * 人行报送状态
     */
    private String sta = NULLSTR;

    /**
     * 业务主键
     */
    private String levyno = NULLSTR;

    /**
     * 操作类型
     */
    private String opertype = NULLSTR;

    /**
     * 变更/撤销原因
     */
    private String actiondesc = NULLSTR;

    /**
     * 银行机构代码
     */
    private String bankorgcode = NULLSTR;

    /**
     * 收款人名称
     */
    private String payername = NULLSTR;

    /**
     * 收款人属性
     */
    private String payerattr = NULLSTR;

    /**
     * 收款人机构代码或身份证件号码
     */
    private String payerorgcode = NULLSTR;

    /**
     * 付款人帐号
     */
    private String payeracct = NULLSTR;

    /**
     * 付款人名称
     */
    private String payeename = NULLSTR;

    /**
     * 收款人常驻国家（地区）代码
     */
    private String payeecountrycode = NULLSTR;

    /**
     * 收款行行号
     */
    private String recebankcode = NULLSTR;

    /**
     * 收款人账户类型
     */
    private String payeeaccttype = NULLSTR;

    /**
     * 收款人账号
     */
    private String payeeacct = NULLSTR;

    /**
     * 总金额
     */
    private BigDecimal allamt  = Decimals.ZERO_SCALE2;

    /**
     * 收款日期
     */
    @JsonFormat(pattern="yyyy-MM-dd",timezone="GMT+8")
    private Date payerdate = NULLDATE;

    /**
     * 结算方式
     */
    private String balancemode = NULLSTR;

    /**
     * 收款币种
     */
    private String payercny = NULLSTR;

    /**
     * 是否退款
     */
    private String ifrefund = NULLSTR;

    /**
     * 原收入申报号码
     */
    private String oriinclevyno = NULLSTR;

    /**
     * 银行业务编号
     */
    private String banktrano = NULLSTR;

    /**
     * 支出明细信息
     */
    private  int paymentlist ;

    /**
     * 支出明细信息标识
     */
    private String payflg = NULLSTR;

    /**
     * Initial Entity Code
     */
    private String ownextkey = NULLSTR;

    /**
     * 银行机构名称
     */
    private String sbankname = NULLSTR;
}
