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


import com.brilliance.isc.common.setfeg.vo.SetfegVo;
import com.brilliance.isc.common.setfog.vo.SetfogVo;
import com.brilliance.isc.common.setmod.vo.PtsFeeDetailVo;
import com.brilliance.isc.common.vo.AbstractCommonVo;
import com.brilliance.mda.runtime.mda.util.Decimals;
import com.fasterxml.jackson.annotation.JsonFormat;
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.Date;
import java.util.List;

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

@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@ApiModel(value = "费用请求返回信息", description = "费用请求返回信息")
public class FeeDetailResponseVo extends AbstractCommonVo {

    @ApiModelProperty(value = "他行收费信息", name = "setfog", required = true)
    private SetfogVo setfog;

    @ApiModelProperty(value = "我行收费信息", name = "setfeg", required = true)
    private SetfegVo setfeg;

    @ApiModelProperty(value = "费用角色详情集合", name = "ptydet", required = true)
    private List<PtsFeeDetailVo> ptydet;

    @ApiModelProperty(value = "单据币种", name = "doccur", required = true)
    private String doccur = NULLSTR;

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

    @ApiModelProperty(value = "我方编号", name = "ref", required = true)
    private String ref = NULLSTR;

    @ApiModelProperty(value = "减少金额", name = "redamt", required = true)
    private BigDecimal redamt = BigDecimal.ZERO;

    @ApiModelProperty(value = "默认我方费用收取角色", name = "feeclirol", required = true)
    private String feeclirol = NULLSTR;

    @ApiModelProperty(value = "默认对手费用收取角色", name = "feecorrol", required = true)
    private String feecorrol = NULLSTR;

    @ApiModelProperty(value = "账务计算基准日期", name = "refdat", required = true)
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date refdat = NULLDATE;

    @ApiModelProperty(value = "自贸区主账号", name = "zmqacc", required = true)
    private String zmqacc = NULLSTR;

    @ApiModelProperty(value = "自贸区标识", name = "zmqflg", required = true)
    private String zmqflg = NULLSTR;

}
