package net.billforward.model;
import java.util.Date;
import net.billforward.BillForwardClient;
import net.billforward.exception.APIConnectionException;
import net.billforward.exception.APIException;
import net.billforward.exception.AuthenticationException;
import net.billforward.exception.CardException;
import net.billforward.exception.InvalidRequestException;
import com.google.gson.annotations.Expose;
import com.google.gson.reflect.TypeToken;
public class PricingComponentValue extends MutableEntity<PricingComponentValue> {
@Expose protected String id;
@Expose protected String subscriptionID;
@Expose protected String organizationID;
@Expose protected int value;
@Expose protected String pricingComponentName;
@Expose protected String pricingComponentID;
@Expose protected Date appliesFrom;
@Expose protected Date appliesTill;
@Expose protected Date updated;
@Expose protected String changedBy;
@Expose protected Date created;
public String getID() {
return id;
}
public String getSubscriptionID() {
return subscriptionID;
}
public void setSubscriptionID(String subscriptionID) {
this.subscriptionID = subscriptionID;
}
public String getOrganizationID() {
return organizationID;
}
public void setOrganizationID(String organizationID) {
this.organizationID = organizationID;
}
public int getValue() {
return value;
}
public void setValue(int value) {
this.value = value;
}
public String getPricingComponentName() {
return pricingComponentName;
}
public void setPricingComponentName(String pricingComponentName) {
this.pricingComponentName = pricingComponentName;
}
public String getPricingComponentID() {
return pricingComponentID;
}
public void setPricingComponentID(String pricingComponentID) {
this.pricingComponentID = pricingComponentID;
}
public Date getAppliesFrom() {
return appliesFrom;
}
public void setAppliesFrom(Date appliesFrom) {
this.appliesFrom = appliesFrom;
}
public Date getAppliesTill() {
return appliesTill;
}
public void setAppliesTill(Date appliesTill) {
this.appliesTill = appliesTill;
}
public Date getUpdated() {
return updated;
}
public String getChangedBy() {
return changedBy;
}
public Date getCreated() {
return created;
}
protected static ResourcePath resourcePath;
// public static PricingComponentValue setActivePricingComponentValue(String subscriptionID_, String pricingComponentName, int value) {
// PricingComponentValue pricingComponentValue = new PricingComponentValue();
// pricingComponentValue.setPricingComponentName(pricingComponentName);
// pricingComponentValue.setValue(value);
// pricingComponentValue.setSubscriptionID(subscriptionID_);
//
// return create(pricingComponentValue, ResourcePath())[0];
// }
public static PricingComponentValue[] getActiveForSubscription(String subscriptionID_) throws AuthenticationException, InvalidRequestException, APIConnectionException, CardException, APIException {
String path = String.format("subscriptions/%s/pricing-component-value", subscriptionID_);
return getAll(ResourcePath(), path);
}
public static PricingComponentValue create(PricingComponentValue pricingComponentValue) throws AuthenticationException, InvalidRequestException, APIConnectionException, CardException, APIException {
return create(pricingComponentValue, ResourcePath())[0];
}
public PricingComponentValue(BillForwardClient client_) {
super(client_);
}
public PricingComponentValue() {
}
protected ResourcePath getResourcePath() {
return resourcePath;
}
protected static ResourcePath ResourcePath() {
return resourcePath;
}
static {
resourcePath = new ResourcePath("pricing-component-values", "pricingComponentValue", new TypeToken<APIResponse<PricingComponentValue>>() {}.getType());
}
}