package com.kickstarter.models; import android.os.Parcelable; import android.support.annotation.Nullable; import com.kickstarter.libs.qualifiers.AutoGson; import org.joda.time.DateTime; import java.util.List; import auto.parcel.AutoParcel; import static com.kickstarter.libs.utils.IntegerUtils.isZero; @AutoGson @AutoParcel public abstract class Reward implements Parcelable { public abstract @Nullable Integer backersCount(); public abstract @Nullable String description(); public abstract long id(); public abstract @Nullable Integer limit(); public abstract float minimum(); public abstract @Nullable DateTime estimatedDeliveryOn(); public abstract @Nullable Integer remaining(); public abstract @Nullable List<RewardsItem> rewardsItems(); public abstract @Nullable Boolean shippingEnabled(); public abstract @Nullable String shippingPreference(); public abstract @Nullable String shippingSummary(); public abstract @Nullable String title(); @AutoParcel.Builder public abstract static class Builder { public abstract Builder backersCount(Integer __); public abstract Builder description(String __); public abstract Builder id(long __); public abstract Builder limit(Integer __); public abstract Builder minimum(float __); public abstract Builder estimatedDeliveryOn(DateTime __); public abstract Builder remaining(Integer __); public abstract Builder rewardsItems(List<RewardsItem> __); public abstract Builder shippingEnabled(Boolean __); public abstract Builder shippingPreference(String __); public abstract Builder shippingSummary(String __); public abstract Builder title(String __); public abstract Reward build(); } public static Builder builder() { return new AutoParcel_Reward.Builder(); } public abstract Builder toBuilder(); public boolean isAllGone() { return isZero(this.remaining()); } public boolean isLimited() { return this.limit() != null && !this.isAllGone(); } }