package com.brilliance.isc.common.rmbbop.entity;


import com.brilliance.mda.runtime.mda.util.Decimals;
import com.brilliance.isc.common.rmbbop.common.IAds;
import com.brilliance.isc.common.vo.AbstractCommonVo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.Getter;
import lombok.Setter;

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;

@JsonIgnoreProperties(ignoreUnknown = true)
@Getter
@Setter
public class Tdo extends AbstractCommonVo implements IAds {
    //Internal Unique ID
    private String inr = NULLSTR;

    //Version
    private String ver = NULLSTR;

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

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

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

    //变�'/撤销原因
    private String actiondesc = NULLSTR;

    //报送机构代码
    private String leorgcode = NULLSTR;

    //担保申请人名称
    private String guaappname = NULLSTR;

    //担保申请人机构代码
    private String guaappcode = NULLSTR;

    //担保人机构代码
    private String voucherswiftbic = NULLSTR;

    //担保人名称
    private String vouchername = NULLSTR;

    //担保人类型
    private String vouchertype = NULLSTR;

    //担保人国别
    private String vouchercountrycode = NULLSTR;

    //担保权人机构代码
    private String voucheeorgcode = NULLSTR;

    //担保权人名称
    private String voucheename = NULLSTR;

    //担保权人类型
    private String voucheetype = NULLSTR;

    //担保权人国别
    private String voucheecountrycode = NULLSTR;

    //债务人机构代码
    private String debtororgcode = NULLSTR;

    //债务人名称
    private String debtorname = NULLSTR;

    //债务人国别
    private String debtorcountrycode = NULLSTR;

    //反担保人机构代码
    private String reverseorgcode = NULLSTR;

    //反担保人名称
    private String reversename = NULLSTR;

    //反担保人国别
    private String reversecountrycode = NULLSTR;

    //担保物权登记国别
    private String propertycountrycode = NULLSTR;

    //担保种类
    private String vouchtype = NULLSTR;

    //反担保方式
    private String vouchmode = NULLSTR;

    //担保币种
    private String currencycode = NULLSTR;

    //担保金额
    private BigDecimal vouchamt = Decimals.ZERO_SCALE2;

    //担保生效日期
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date vouchefficientdate = NULLDATE;

    //担保到期日期
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date vouchenddate = NULLDATE;

    //担保合同编号
    private String contractno = NULLSTR;

    //担保登记编号
    private String vouchno = NULLSTR;

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

    //交易附言
    private String addword = NULLSTR;

    //Initial Entity Code
    private String ownextkey = NULLSTR;

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