All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.genability.client.api.request.GetCalculatedCostRequest Maven / Gradle / Ivy

package com.genability.client.api.request;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;

import org.apache.http.NameValuePair;
import org.joda.time.DateTime;

import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonInclude.Include;
import com.genability.client.types.DetailLevel;
import com.genability.client.types.GroupBy;
import com.genability.client.types.PropertyData;
import com.genability.client.types.TariffRate;

@JsonInclude(Include.NON_NULL)
public class GetCalculatedCostRequest extends AbstractRequest implements Serializable {


	/**
	 * Private member variable serialVersionUID
	 */
	private static final long serialVersionUID = 1L;
	private DateTime fromDateTime;
	private DateTime toDateTime;
	private Long masterTariffId;
	private Long tariffRateId;
	private String profileId;
	private List tariffInputs;
	private String accuracy;
	private String accountId;
	private String providerAccountId;
	private Boolean billingPeriod;
	private Boolean useMostRecentUsageData;
	private Boolean includeDefaultProfile;
	private Boolean minimums;
	private BigDecimal dataFactor;
	private String zipCode;
	private Long territoryId;

	/**
	 * Private member variable detailLevel
	 * Possible values are: ALL, TOTAL, CHARGE_TYPE, RATE
	 * Default is ALL if not specified.
	 */
	private DetailLevel detailLevel;

	/**
	 * Private member variable groupBy
	 * Possible values are: YEAR, MONTH, etc
	 * Default is no grouping if not specified.
	 */
	private GroupBy groupBy;
	

	private List rateInputs;

	public GetCalculatedCostRequest() {


	}

	public DateTime getFromDateTime() {
		return fromDateTime;
	}

	public void setFromDateTime(DateTime fromDate) {
		fromDateTime = fromDate;
	}

	public DateTime getToDateTime() {
		return toDateTime;
	}

	public void setToDateTime(DateTime toDate) {
		toDateTime = toDate;
	}

	
	@JsonInclude(Include.NON_NULL)
	public Long getMasterTariffId() {
		return masterTariffId;
	}
	
	/**
	 * The ID of the tariff to calculate for. Only needs to be set when
	 * not running against an account, or if you want to override the
	 * accounts tariff.
	 * 
	 * @param masterTariffId The masterTariffId to set
	 */
	public void setMasterTariffId(Long masterTariffId) {
		this.masterTariffId = masterTariffId;
	}

	@JsonInclude(Include.NON_NULL)
	public Long getTariffRateId() {
		return tariffRateId;
	}

	public void setTariffRateId(Long tariffRateId_) {
		this.tariffRateId = tariffRateId_;
	}
	
	@JsonInclude(Include.NON_NULL)
	public String getAccountId() {
		return accountId;
	}

	public void setAccountId(String accountId) {
		this.accountId = accountId;
	}

	@JsonInclude(Include.NON_NULL)
	public String getProviderAccountId() {
    	return providerAccountId;
    }

	public void setProviderAccountId(String providerAccountId) {
    	this.providerAccountId = providerAccountId;
    }


	@JsonInclude(Include.NON_NULL)
	public String getProfileId() {
		return profileId;
	}

	public void setProfileId(String profileId) {
		this.profileId = profileId;
	}

	@JsonInclude(Include.NON_NULL)
	public DetailLevel getDetailLevel() {
		return detailLevel;
	}

	public void setDetailLevel(DetailLevel detailLevel) {
		this.detailLevel = detailLevel;
	}

	@JsonInclude(Include.NON_NULL)
	public GroupBy getGroupBy() {
		return groupBy;
	}

	public void setGroupBy(GroupBy groupBy) {
		this.groupBy = groupBy;
	}

	@JsonInclude(Include.NON_NULL)
	public String getAccuracy() {
		return accuracy;
	}

	public void setAccuracy(String accuracy) {
		this.accuracy = accuracy;
	}

	public List getTariffInputs() {
		return tariffInputs;
	}

	public void setTariffInputs(List tariffInputs) {
		this.tariffInputs = tariffInputs;
	}

	public void addTariffInput(PropertyData tariffInput) {
		if (tariffInputs == null) {
			tariffInputs = new ArrayList();
		}
		tariffInputs.add(tariffInput);
	}
	
	public void addTariffInputs(Collection tariffInputs) {
		if (this.tariffInputs == null) {
			this.tariffInputs = new ArrayList();
		}
		this.tariffInputs.addAll(tariffInputs);
	}

	public List getRateInputs() {
        return rateInputs;
    }
	
	public void setRateInputs(List rateInputs) {
        this.rateInputs = rateInputs;
    }
	
	public void addRateInput(TariffRate rateInput) {
		if (rateInputs == null) {
			rateInputs = new ArrayList();
		}
		rateInputs.add(rateInput);
	}
	
	public void addRateInputs(Collection rateInputs) {
		if (this.rateInputs == null) {
			this.rateInputs = new ArrayList();
		}
		this.rateInputs.addAll(rateInputs);
	}

	@JsonInclude(Include.NON_NULL)
	public Boolean getBillingPeriod() {
      return billingPeriod;
    }

	public void setBillingPeriod(Boolean billingPeriod) {
      this.billingPeriod = billingPeriod;
    }
	
	@JsonInclude(Include.NON_NULL)
	public Boolean getIncludeDefaultProfile() {
		return includeDefaultProfile;
	}

	public void setIncludeDefaultProfile(Boolean includeDefaultProfile) {
		this.includeDefaultProfile = includeDefaultProfile;
	}

	@JsonInclude(Include.NON_NULL)
	public Boolean getUseMostRecentUsageData() {
		return useMostRecentUsageData;
	}

	public void setUseMostRecentUsageData(Boolean useMostRecentUsageData) {
		this.useMostRecentUsageData = useMostRecentUsageData;
	}

	@JsonInclude(Include.NON_NULL)
	public Boolean getMinimums() {
		return minimums;
	}

	public void setMinimums(Boolean minimums) {
		this.minimums = minimums;
	}

	@JsonInclude(Include.NON_NULL)
	public BigDecimal getDataFactor() {
		return dataFactor;
	}

	public void setDataFactor(BigDecimal dataFactor) {
		this.dataFactor = dataFactor;
	}

	public String getZipCode() {
		return zipCode;
	}

	public void setZipCode(String zipCode) {
		this.zipCode = zipCode;
	}

	public Long getTerritoryId() {
		return territoryId;
	}

	public void setTerritoryId(Long territoryId) {
		this.territoryId = territoryId;
	}

	@Override
	@JsonIgnore
	public List getQueryParams() {
		
		List qparams = super.getQueryParams();
		addParam(qparams,"masterTariffId",masterTariffId);
		addParam(qparams, "fromDateTime", fromDateTime);
		addParam(qparams, "toDateTime", toDateTime);
		addParam(qparams,"betaPopulateAssumptions",true);
		return qparams;
		
	}	
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy