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

import com.brilliance.mda.runtime.mda.util.Decimals;
import com.brilliance.isc.annotation.ForceRecalculate;
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:tdn:银行跟单结算及其他贸易融资业务信息
 */
@JsonIgnoreProperties(ignoreUnknown = true)
@Getter
@Setter
public class Tdn extends AbstractCommonVo implements IAds {

    //Internal Unique ID
    private String inr = NULLSTR;

    //Version
    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 entrustbankorgcode = NULLSTR;

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

    //业务类型
    private String transtype = NULLSTR;

    //境外对手行代码
    @ForceRecalculate
    private String forbankswiftbic = NULLSTR;

    //进口商名称
    private String importername = NULLSTR;

    //进口商国家（地区）代码
    private String impcountrycode = NULLSTR;

    //进口商机构代码
    private String importercode = NULLSTR;

    //出口商名称
    private String exportername = NULLSTR;

    //出口商国家（地区）代码
    private String expcountrycode = NULLSTR;

    //出口商机构代码
    private String exportercode = NULLSTR;

    //业务发生日期
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date occurdate = NULLDATE;

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

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

    //币种
    @ForceRecalculate
    private String currencycode = NULLSTR;

    //金额
    private BigDecimal amt = Decimals.ZERO_SCALE2;

    //期限条件
    private String termtype = NULLSTR;

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

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

    //承兑信息
    private int exchangelist;

    //福�'�廷信息
    private int forfeitinglist;

    //福�'�廷信息标识
    private String fftflg = NULLSTR;

    //承兑信息标识
    private String excflg = NULLSTR;

    //Initial Entity Code
    private String ownextkey = NULLSTR;

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

}