package com.google.wallet.objects.verticals;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import com.google.api.services.walletobjects.model.Barcode;
import com.google.api.services.walletobjects.model.DateTime;
import com.google.api.services.walletobjects.model.GiftCardClass;
import com.google.api.services.walletobjects.model.GiftCardObject;
import com.google.api.services.walletobjects.model.Image;
import com.google.api.services.walletobjects.model.LatLongPoint;
import com.google.api.services.walletobjects.model.LinksModuleData;
import com.google.api.services.walletobjects.model.Money;
import com.google.api.services.walletobjects.model.TextModuleData;
import com.google.api.services.walletobjects.model.Uri;
/**
* Class to generate example Loyalty class and objects
*
* @author mahues
*/
public class GiftCard {
/**
* Generates a GiftCard Object
*
* @param issuerId
* @param classId
* @param objectId
* @return loyaltyObject
*/
public static GiftCardObject generateGiftCardObject(String issuerId,
String classId, String objectId) {
// Define Barcode
Barcode barcode = new Barcode().setType("qrCode")
.setValue("28343E3")
.setAlternateText("12345")
.setLabel("User Id");
Money balance = new Money();
balance.setCurrencyCode("USD");
balance.setMicros(20000000L);
DateTime balanceUpdateTime = new DateTime();
balanceUpdateTime.setDate(new com.google.api.client.util.DateTime(new Date()));
// Define Text Module Data
List<TextModuleData> textModulesData = new ArrayList<TextModuleData>();
TextModuleData textModuleData = new TextModuleData()
.setHeader("Earn double points")
.setBody("Jane, don't forget to use your Baconrista Rewards when " +
"paying with this gift card to earn additional points");
textModulesData.add(textModuleData);
// Define Links Module Data
List<Uri> uris = new ArrayList<Uri>();
Uri uri1 = new Uri().setDescription("My Baconrista Gift Card Purchases")
.setUri("http://www.baconrista.com/mybalance?id=1234567890");
uris.add(uri1);
LinksModuleData linksModuleData = new LinksModuleData().setUris(uris);
// Define Wallet Instance
GiftCardObject object = new GiftCardObject()
.setClassId(issuerId + "." + classId).setId(issuerId + "." + objectId)
.setState("active").setVersion(1L).setBarcode(barcode)
.setTextModulesData(textModulesData)
.setLinksModuleData(linksModuleData)
.setBalance(balance)
.setBalanceUpdateTime(balanceUpdateTime)
.setEventNumber("123456").setCardNumber("123jkl4889").setPin("1111");
return object;
}
/**
* Generates a GiftCard Class
*
* @param issuerId
* @param classId
* @return loyaltyClass
*/
public static GiftCardClass generateGiftCardClass(String issuerId,
String classId) {
// Define Text Module Data
List<TextModuleData> textModulesData = new ArrayList<TextModuleData>();
TextModuleData textModuleData = new TextModuleData().setHeader("Where to Redeem")
.setBody(
"All US gift cards are redeemable in any US and Puerto Rico " +
"Baconrista retail locations, or online at Baconrista.com where" +
"available, for merchandise or services.");
textModulesData.add(textModuleData);
// Define Links Module Data
List<Uri> uris = new ArrayList<Uri>();
Uri uri1 = new Uri().setDescription("Baconrista").setUri("http://www.baconrista.com/");
uris.add(uri1);
LinksModuleData linksModuleData = new LinksModuleData().setUris(uris);
// Define Geofence locations
List<LatLongPoint> locations = new ArrayList<LatLongPoint>();
locations.add(new LatLongPoint().setLatitude(37.422601).setLongitude(
-122.085286));
// Create class
GiftCardClass wobClass = new GiftCardClass()
.setId(issuerId + "." + classId)
.setIssuerName("Baconrista")
.setMerchantName("Baconrista")
.setProgramLogo(
new Image().setSourceUri(new Uri()
.setUri("http://farm8.staticflickr.com/7340/11177041185_a61a7f2139_o.jpg")))
.setTextModulesData(textModulesData)
.setLinksModuleData(linksModuleData)
.setReviewStatus("underReview").setAllowMultipleUsersPerObject(true)
.setLocations(locations);
return wobClass;
}
}