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;


/**
 * TABLE:tfb:跨境同业融资业务信息
 */
@JsonIgnoreProperties(ignoreUnknown = true)
@Getter
@Setter
public class Tfb extends AbstractCommonVo implements IAds {
    //INR
    private String inr = NULLSTR;

    //VER
    private String ver = NULLSTR;

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

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

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

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

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

    //是否自�'�区业务
    private String isfreetradezone = NULLSTR;

    //是否分�'�核算单元
    private String issubaccountunit = NULLSTR;

    //业务属性
    private String transattr = NULLSTR;

    //业务种类
    private String transkind = NULLSTR;

    //融出机构代码
    private String outorgcode = NULLSTR;

    //融出机构名称
    private String outorgname = NULLSTR;

    //融出机构类型
    private String outorgtype = NULLSTR;

    //融出机构所在国家（地区）代码
    private String outcountrycode = NULLSTR;

    //融入机构代码
    private String inorgcode = NULLSTR;

    //融入机构名称
    private String inorgname = NULLSTR;

    //融入机构类型
    private String inorgtype = NULLSTR;

    //融入机构所在国家（地区）代码
    private String incountrycode = NULLSTR;

    //融资类型
    private String finatype = NULLSTR;

    //融资币种
    private String fincny = NULLSTR;

    //融资金额
    private BigDecimal finamt = Decimals.ZERO_SCALE3;

    //是否联行及附属机构往来
    private String affiliatebank = NULLSTR;

    //交易日
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date exchangedate = NULLDATE;

    //起息日
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date finstrdate = NULLDATE;

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

    //利率
    private BigDecimal finrate = Decimals.ZERO_SCALE6;

    //利率类型
    private String ratetype = NULLSTR;

    //利率期限单位
    private String rateunit = NULLSTR;

    //利率重新定价期限
    private String rateafreshlimit = NULLSTR;

    //浮动利率基准
    private String ratebenchmark = NULLSTR;

    //浮动利率加点
    private BigDecimal rateaddend = Decimals.ZERO_SCALE4;

    //融资（�'�款）状态
    private String finstate = NULLSTR;

    //逾期未还款金额
    private BigDecimal latepayamt = Decimals.ZERO_SCALE3;

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

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

    //Initial Entity Code
    private String ownextkey = NULLSTR;

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

}