package com.kickstarter.libs.models;
import android.os.Parcelable;
import android.support.annotation.NonNull;
import com.google.gson.Gson;
import com.kickstarter.libs.qualifiers.AutoGson;
import auto.parcel.AutoParcel;
/**
* A value that represents a fully authorized Android Pay transaction. It is sent back to our server to be processed
* and saved as a stored card.
*/
@AutoGson
@AutoParcel
public abstract class AndroidPayAuthorizedPayload implements Parcelable {
public abstract @NonNull AndroidPayWallet androidPayWallet();
public abstract @NonNull StripeToken stripeToken();
@AutoParcel.Builder
public abstract static class Builder {
public abstract Builder androidPayWallet(AndroidPayWallet __);
public abstract Builder stripeToken(StripeToken __);
public abstract AndroidPayAuthorizedPayload build();
}
public abstract Builder toBuilder();
public static Builder builder() {
return new AutoParcel_AndroidPayAuthorizedPayload.Builder();
}
/**
* A value that represents the parts of the authorized transaction that correspond specifically to an
* Android Pay wallet.
*/
@AutoParcel
@AutoGson
public abstract static class AndroidPayWallet implements Parcelable {
public abstract @NonNull String googleTransactionId();
/**
* Last 4 of credit card.
*/
public abstract @NonNull String instrumentDetails();
/**
* Network name of credit card.
*/
public abstract @NonNull String instrumentType();
@AutoParcel.Builder
public abstract static class Builder {
public abstract Builder googleTransactionId(String __);
public abstract Builder instrumentDetails(String __);
public abstract Builder instrumentType(String __);
public abstract AndroidPayWallet build();
}
public abstract Builder toBuilder();
public static Builder builder() {
return new AutoParcel_AndroidPayAuthorizedPayload_AndroidPayWallet.Builder();
}
}
/**
* A value that represents the parts of the authorized transaction that correspond specifically to an
* Stripe token.
*/
@AutoParcel
@AutoGson
public abstract static class StripeToken implements Parcelable {
public abstract String id();
@AutoParcel.Builder
public abstract static class Builder {
public abstract Builder id(String __);
public abstract StripeToken build();
}
public abstract Builder toBuilder();
public static Builder builder() {
return new AutoParcel_AndroidPayAuthorizedPayload_StripeToken.Builder();
}
}
public static @NonNull StripeToken create(final @NonNull String str, final @NonNull Gson gson) {
return gson.fromJson(str, StripeToken.class);
}
}