package com.brilliance.isc.vo.lg;

import com.brilliance.mda.support.jakson.serialize.BigDecimalSerializeRate;
import com.brilliance.mda.support.jakson.serialize.DecimalLength;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import lombok.Data;

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

@Data
@JsonIgnoreProperties(ignoreUnknown = true)
public class ComcalVo {

    /**
     * 业务类型
     */
    private String objtyp;

    /**
     * 业务主键
     */
    private String objinr;

    /**
     * 业务编号
     */
    private String objref;

    /**
     * 客户inr
     */
    private String ptyinr;

    /**
     * 客户号
     */
    private String ptyextkey;

    /**
     * 客户名称
     */
    private String ptynam;

    /**
     * 业务种类
     */
    private String trntyp;

    /**
     * 开始日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date beginDate;

    /**
     * 结束日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date endDate;

    /**
     * 收取份数
     */
    private int unt;

    /**
     * 费用代码
     */
    private String feecod;

    /**
     * 计费规则
     */
    private String calrul;

    /**
     * 费率
     */
    @JsonSerialize(using = BigDecimalSerializeRate.class)
    @DecimalLength(6)
    private BigDecimal ratcal = BigDecimal.ZERO;

    /**
     * 费用币种
     */
    private String feecur;

    /**
     * 实收金额
     */
    private BigDecimal ogiamt;

    /**
     * 应收金额
     */
    private BigDecimal feeamt;

    /**
     * 计算明细
     */
    private String inftxt;

    /**
     * 计费周期
     */
    private String pertyp;

    /**
     * 所属机构名称
     */
    private String bchnam;
    /**
     * 开立日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date opndat;
    /**
     * 保函效期
     */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date expdat;
    /**
     * 业务币种
     */
    private String txnccy;
    /**
     * 业务金额
     */
    private BigDecimal txnamt = BigDecimal.ZERO;
    /**
     * 业务余额
     */
    private BigDecimal opnamt = BigDecimal.ZERO;
    /**
     * 修改手续费
     */
    private BigDecimal ameamt = BigDecimal.ZERO;
    /**
     * 电报费
     */
    private BigDecimal telamt = BigDecimal.ZERO;
    /**
     * 是否表示查询的是老数据的标准费率
     */
    private String readFec;
}
