package com.brilliance.isc.common.api.liaccv.vo;

import com.brilliance.mda.runtime.mda.util.Decimals;
import com.brilliance.mda.support.jakson.serialize.BigDecimalSerializeRate;
import com.brilliance.mda.support.jakson.serialize.DecimalLength;
import com.brilliance.isc.common.liaccv.vo.LiaccvgVo;
import com.brilliance.isc.common.vo.AbstractCommonVo;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

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


@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@ApiModel(value = "保证金请求返回信息", description = "保证金请求信息")
public class LiaccvResponse extends AbstractCommonVo {

    @ApiModelProperty(value = "合同币种", name = "concur", required = true)
    private String concur;

    @ApiModelProperty(value = "合同金额", name = "newamt", required = true)
    private BigDecimal newamt = BigDecimal.ZERO;

    @ApiModelProperty(value = "金额", name = "chgamt", required = true)
    private BigDecimal chgamt = Decimals.ZERO_SCALE2;

    @ApiModelProperty(value = "应收比例", name = "cshpct", required = true)
    @JsonSerialize(using = BigDecimalSerializeRate.class)
    @DecimalLength(6)
    private BigDecimal cshpct = BigDecimal.ZERO;

    @ApiModelProperty(value = "保留金额", name = "newresamt", required = true)
    private BigDecimal newresamt = BigDecimal.ZERO;

    @ApiModelProperty(value = "实收比例", name = "relcshpct", required = true)
    @JsonSerialize(using = BigDecimalSerializeRate.class)
    @DecimalLength(6)
    private BigDecimal relcshpct = BigDecimal.ZERO;

    @ApiModelProperty(value = "应付金额", name = "pctresamt", required = true)
    private BigDecimal pctresamt = BigDecimal.ZERO;

    @ApiModelProperty(value = "折算金额总和", name = "totcovamt", required = true)
    private BigDecimal totcovamt = BigDecimal.ZERO;

    @ApiModelProperty(value = "附加信息", name = "addinf", required = true)
    private String addinf;

    @ApiModelProperty(value = "Liaccvg列表", name = "liaallgList", required = true)
    private List<LiaccvgVo> liaccvg;

    @ApiModelProperty(value = "原始金额", name = "oldcur", required = true)
    private String oldcur = "";

    @ApiModelProperty(value = "原始金额", name = "oldamt", required = true)
    private BigDecimal oldamt = Decimals.ZERO_SCALE2;

    @ApiModelProperty(value = "角色", name = "newrol", required = true)
    private String newrol = "";

    @ApiModelProperty(value = "是否读过old数据", name = "oldredflg", required = true)
    private String oldredflg = "";

    private BigDecimal oldresamt = Decimals.ZERO_SCALE2;

    private BigDecimal chgresamt = Decimals.ZERO_SCALE2;

    private String macold = "";

    private String objmodpath = "";

    /**
     *  增加保证金按钮
     */
    private String addbut = "N";

    /**
     * 记账按钮
     */
    private String glebut = "N";

    private String gleflg = "";

    /**
     * cbe 列表
     */
    private String cbeListJson = "";

}
