package com.brilliance.isc.vo.collection;

import com.brilliance.isc.common.vo.BizInfoVo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.brilliance.isc.common.vo.PtsptaVo;
import lombok.Data;

import java.math.BigDecimal;
import java.util.ArrayList;
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
public class BcdBizInfoVo extends BizInfoVo {

    // 退单类型
    private String rejtypsel;

    // 退单方式（我行主动退单，国外要求退单）
    private String rejtype;

    private BigDecimal newamt = BigDecimal.ZERO;

    private BigDecimal ameamt = BigDecimal.ZERO;

    private String amecur;

    private String oridre;

    private String sndmsg;

    private String bflg;

    private String trntyp;

    private String mattxtflg;

    @Deprecated // 单据列表新版本使用两个table进行存储,可用docgrdm进行替换
    private List<Docgrd> docgrds = new ArrayList<>();

    private Docgrdm docgrdm;

    private String doccur =  NULLSTR;

    private BigDecimal docamt = BigDecimal.ZERO;

    private BigDecimal redamt = BigDecimal.ZERO;

    //bcdgrp.rec.doctypcod
    private String doctypcod = "";

    //bcdgrp.rec.matpercnt
    private int matpercnt = 0;

    //bcdgrp.rec.matpertyp
    private String matpertyp = "";

    private String goddspcn = "";

    private String invtyp = "";

    //预计核验日期
    @JsonFormat(pattern="yyyy-MM-dd",timezone="GMT+8")
    private Date prechkdat;
    //fremsg相关
    private String sndmt;
    private  String msgrol = NULLSTR;
    private  String ccrol = NULLSTR;
    private PtsptaVo othmsg;
    private PtsptaVo othcc;
    private  String reldir = NULLSTR;
    private  String fulmt = NULLSTR;
    private  String relmt = NULLSTR;

    /**
     * 申报类型
     */
    private String szflg;

    /**
     * 款项去向
     */
    private String acttyp;

    /**
     * 跨境人民币清算模式
     */
    private String cmtflg;

    // BCDGRP\\REC\\STACTY
    private String stacty;

    // BCDGRP\\REC\\SHPDAT
    private Date shpdat;

    // rop交易需要用到opn1
    private String opn1cur;

    private BigDecimal opn1amt;

    //收支申报用
    @JsonFormat(pattern="yyyy-MM-dd",timezone="GMT+8")
    private Date matdat = NULLDATE;

    // swifttype

    // swiftdate
    private Date swtdat;
}
