package com.brilliance.isc.common.fecism.vo;

import com.brilliance.isc.common.setmod.vo.CommCbsLine;
import com.brilliance.isc.common.vo.AbstractCommonVo;
import com.brilliance.mda.runtime.mda.util.Decimals;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

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

@Data
public class CalcFeeRequest extends AbstractCommonVo {

    //费用币种
    private String feecur = NULLSTR;

    //费用减免金额
    private BigDecimal dctamt = Decimals.ZERO_SCALE2;

    //费用份数
    private int unt;

    //交易币种
    private String relcur = NULLSTR;;

    //交易金额
    private BigDecimal relAmt = BigDecimal.ZERO;

    //费用代码
    private String feecod = NULLSTR;

    //计费开始日期
    private Date dat1;

    //计费结束日期
    private Date dat2;

    //业务效期
    private Date dat2dft;

    //修改标识
    private String modflg = NULLSTR;

    //费用计算规则
    private String calrul = NULLSTR;

    //收费条件类型
    private String feepri = NULLSTR;

    //计算基准
    private String calcbs = NULLSTR;

    //Period Type 周期类型
    private String pertyp = NULLSTR;

    //Minimum Periods 最小周期
    private int permin;

    //计算费率
    private BigDecimal ratcal = Decimals.ZERO_SCALE6;

    //Maximum Currency
    private String maxcur = NULLSTR;

    //Maximum Amount
    private  BigDecimal maxamt  = Decimals.ZERO_SCALE2;

    //Minimum Currency
    private String mincur = NULLSTR;

    //Minimum Amount/Value
    private  BigDecimal minamt  = Decimals.ZERO_SCALE2;

    //Amount per Unit
    private  BigDecimal untamt = Decimals.ZERO_SCALE2;

    //Rate Currency
    private String ratcur = NULLSTR;

    //Start Period Tier 2
    private  int perbegtr2 ;

    //Rate Tier 2
    private  BigDecimal perrattr2  = Decimals.ZERO_SCALE6;

    //Start Period Tier 3
    private  int perbegtr3 ;

    //Rate Tier 3
    private  BigDecimal perrattr3  = Decimals.ZERO_SCALE6;

    //Start Period Tier 4
    private  int perbegtr4 ;

    //Rate Tier 4
    private  BigDecimal perrattr4  = Decimals.ZERO_SCALE6;

    //Start Period Tier 5
    private  int perbegtr5 ;

    //Rate Tier 5
    private  BigDecimal perrattr5  = Decimals.ZERO_SCALE6;

    //Amount Flag
    private String amtflg = NULLSTR;

    //费用计算明细
    private String inftxt = NULLSTR;

    //宽限期
    private int graceDays = 0;

    //费用描述
    private String feetxtinf = NULLSTR;

    private List<CommCbsLine> commCbsLines;

    private boolean readByDefault = false;

    //交易模型
    private String objmod;

    private String roundFlag = "N";
}
