package org.helicalmoment.zola.takehome.v1.models; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.core.JsonProcessingException; import java.io.IOException; import java.lang.Integer; import java.lang.Long; import java.lang.Object; import java.lang.Override; import java.lang.String; import org.joda.time.DateTime; /** * Generated by API Builder - https://www.apibuilder.io * Service version: 1.0.0-dev * User agent: apibuilder app.apibuilder.io/helicalmoment/zola-takehome/1.0.0-dev/android_client * * WARNING: not all features (notably unions) and data types work with android generator yet. * Android generator is designed to be used in an android application, but should work in any java codebase as long as you import jackson and retrofit2 libraries. * If you are considering using this library, would like to request/discuss features, or would like to share how you're using it, please contact android-feedback@gilt.com * * An invoice */ @JsonIgnoreProperties( ignoreUnknown = true ) public class Invoice { private final Integer id; private final String invoiceNumber; private final String poNumber; private final DateTime dueDate; private final Long amountCents; private final DateTime createdAt; @JsonCreator public Invoice(@JsonProperty("id") Integer id, @JsonProperty("invoice_number") String invoiceNumber, @JsonProperty("po_number") String poNumber, @JsonProperty("due_date") DateTime dueDate, @JsonProperty("amount_cents") Long amountCents, @JsonProperty("created_at") DateTime createdAt) { this.id = id; this.invoiceNumber = invoiceNumber; this.poNumber = poNumber; this.dueDate = dueDate; this.amountCents = amountCents; this.createdAt = createdAt; } /** * Unique identifier for an invoice */ public Integer getId() { return id; } /** * The invoice number associated with the invoice */ public String getInvoiceNumber() { return invoiceNumber; } /** * The purchase number associated with the invoice */ public String getPoNumber() { return poNumber; } /** * When invoice payment is due */ public DateTime getDueDate() { return dueDate; } /** * Total amount of invoice in US cents */ public Long getAmountCents() { return amountCents; } /** * Invoice creation timestamp */ public DateTime getCreatedAt() { return createdAt; } @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; Invoice that = (Invoice) o; if (id != null ? !id.equals(that.id) : that.id != null) return false; if (invoiceNumber != null ? !invoiceNumber.equals(that.invoiceNumber) : that.invoiceNumber != null) return false; if (poNumber != null ? !poNumber.equals(that.poNumber) : that.poNumber != null) return false; if (dueDate != null ? !dueDate.equals(that.dueDate) : that.dueDate != null) return false; if (amountCents != null ? !amountCents.equals(that.amountCents) : that.amountCents != null) return false; if (createdAt != null ? !createdAt.equals(that.createdAt) : that.createdAt != null) return false; return true; } @Override public int hashCode() { int result = 0; result = 31 * result + (id != null ? id.hashCode() : 0); result = 31 * result + (invoiceNumber != null ? invoiceNumber.hashCode() : 0); result = 31 * result + (poNumber != null ? poNumber.hashCode() : 0); result = 31 * result + (dueDate != null ? dueDate.hashCode() : 0); result = 31 * result + (amountCents != null ? amountCents.hashCode() : 0); result = 31 * result + (createdAt != null ? createdAt.hashCode() : 0); return result; } public String toJsonString() throws JsonProcessingException { return org.helicalmoment.zola.takehome.v1.android.ApiBuilderObjectMapper.getInstance().writeValueAsString(this); } public static Invoice parseJson(String json) throws IOException { return org.helicalmoment.zola.takehome.v1.android.ApiBuilderObjectMapper.getInstance().readValue( json, Invoice.class); } }