package com.ag.entity.fee.face;

import com.ag.entity.account.FeeDetail;
import com.ag.entity.fee.ContractItem;
import com.ag.entity.fee.vo.TariffVO;
import com.alibaba.fastjson.JSONObject;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

/**
 * Created by yangxh on 2019/8/1.
 */
public class SourceProperty implements Serializable {

    /**
     * 调用方参数
     */
    private String bizId;//业务编号(必填)
    private String bizTime;//业务时间(必填)
    private String bizType;//业务类别代码（提供给报表使用, SH=舱单RE=设备交接单HI=整柜堆存ST=仓储RF=插拔电BC=散货拖运）
    private JSONObject property = new JSONObject();//计费属性
    private JSONObject spare = new JSONObject();//备用map, 计费调用方预留属性, 计费不使用.

    /**
     * 计费用参数
     */
    private Integer criteriaNum;
    private String sort;
    private TariffVO tariffVO;
    private ContractItem contractItem;
    private FeeDetail payDetail;
    private FeeDetail receiveDetail;
    private TariffVO derateTariff;//带减免规则的费率
    /**
     * 返回给调用方
     */
    private List<TariffVO> backTariffs = new ArrayList<>();


    public String getBizId() {
        return bizId;
    }

    public void setBizId(String bizId) {
        this.bizId = bizId;
    }

    public String getBizTime() {
        return bizTime;
    }

    public void setBizTime(String bizTime) {
        this.bizTime = bizTime;
    }

    public String getBizType() {
        return bizType;
    }

    public void setBizType(String bizType) {
        this.bizType = bizType;
    }

    public JSONObject getProperty() {
        return property;
    }

    public void setProperty(JSONObject property) {
        this.property = property;
    }

    public Integer getCriteriaNum() {
        return criteriaNum;
    }

    public void setCriteriaNum(Integer criteriaNum) {
        this.criteriaNum = criteriaNum;
    }

    public String getSort() {
        return sort;
    }

    public void setSort(String sort) {
        this.sort = sort;
    }

    public TariffVO getTariffVO() {
        return tariffVO;
    }

    public void setTariffVO(TariffVO tariffVO) {
        this.tariffVO = tariffVO;
    }

    public ContractItem getContractItem() {
        return contractItem;
    }

    public void setContractItem(ContractItem contractItem) {
        this.contractItem = contractItem;
    }

    public FeeDetail getPayDetail() {
        return payDetail;
    }

    public void setPayDetail(FeeDetail payDetail) {
        this.payDetail = payDetail;
    }

    public FeeDetail getReceiveDetail() {
        return receiveDetail;
    }

    public void setReceiveDetail(FeeDetail receiveDetail) {
        this.receiveDetail = receiveDetail;
    }

    public TariffVO getDerateTariff() {
        return derateTariff;
    }

    public void setDerateTariff(TariffVO derateTariff) {
        this.derateTariff = derateTariff;
    }

    public JSONObject getSpare() {
        return spare;
    }

    public void setSpare(JSONObject spare) {
        this.spare = spare;
    }

    public List<TariffVO> getBackTariffs() {
        return backTariffs;
    }

    public void setBackTariffs(List<TariffVO> backTariffs) {
        this.backTariffs = backTariffs;
    }
}
