// Path: src/main/java/com/lookfirst/wepay/api/CheckoutUri.java
// @Data
// @EqualsAndHashCode(callSuper=false)
// public class CheckoutUri extends CheckoutId {
// 	private static final long serialVersionUID = 1L;
// 
// 	/** The uri you can send a user to so they can pay. */
// 	private String checkoutUri;
// 
// }
// 
// Path: src/main/java/com/lookfirst/wepay/api/Constants.java
// public static enum FeePayer { payer, payee, payer_from_app, payee_from_app }
// 
// Path: src/main/java/com/lookfirst/wepay/api/Constants.java
// public static enum Mode { iframe, regular }
// 
// Path: src/main/java/com/lookfirst/wepay/api/Constants.java
// public static enum PaymentType { GOODS, SERVICE, DONATION, EVENT, PERSONAL }
// 
// Path: src/main/java/com/lookfirst/wepay/api/Constants.java
// @Data
// public static class PrefillInfo {
// 	String name;
// 	String email;
// 	String phoneNumber;
// 	String address;
// 	String city;
// 	String state;
// 	String zip;
// 	String country;
// 	String region;
// 	String postcode;
// }


import com.lookfirst.wepay.api.CheckoutUri;
import com.lookfirst.wepay.api.Constants.FeePayer;
import com.lookfirst.wepay.api.Constants.Mode;
import com.lookfirst.wepay.api.Constants.PaymentType;
import com.lookfirst.wepay.api.Constants.PrefillInfo;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.math.BigDecimal;
package com.lookfirst.wepay.api.req;



/**
 * https://stage.wepay.com/developer/reference/checkout
 *
 * Creates a checkout for an account. The application can send a user to the checkout_uri so the user can pay the account for the amount specified.
 * NOTE: Checkouts will be expired 30 minutes after they are created if their is no activity on them (ie they were abandoned after creation).
 *
 * When the payer completes the payment, they will be returned to the redirect_uri you used in the /checkout/create call.
 * The checkout_id and the payment authorization code will be uri encoded in the redirect_uri so that you can confirm that the payment was made.
 * You can also use the Instant Payment Notifications system to receive push notifications of checkout state changes.
 * If you did not specify a redirect_uri, they will be returned to the application homepage.
 *
 * @author Jon Scott Stevens
 * @author Jeff Schnitzer
 */
@Data
@EqualsAndHashCode(callSuper=false)
// Path: src/main/java/com/lookfirst/wepay/api/CheckoutUri.java
// @Data
// @EqualsAndHashCode(callSuper=false)
// public class CheckoutUri extends CheckoutId {
// 	private static final long serialVersionUID = 1L;
// 
// 	/** The uri you can send a user to so they can pay. */
// 	private String checkoutUri;
// 
// }
// 
// Path: src/main/java/com/lookfirst/wepay/api/Constants.java
// public static enum FeePayer { payer, payee, payer_from_app, payee_from_app }
// 
// Path: src/main/java/com/lookfirst/wepay/api/Constants.java
// public static enum Mode { iframe, regular }
// 
// Path: src/main/java/com/lookfirst/wepay/api/Constants.java
// public static enum PaymentType { GOODS, SERVICE, DONATION, EVENT, PERSONAL }
// 
// Path: src/main/java/com/lookfirst/wepay/api/Constants.java
// @Data
// public static class PrefillInfo {
// 	String name;
// 	String email;
// 	String phoneNumber;
// 	String address;
// 	String city;
// 	String state;
// 	String zip;
// 	String country;
// 	String region;
// 	String postcode;
// }


// Path: src/main/java/com/lookfirst/wepay/api/req/CheckoutCreateRequest.java
import com.lookfirst.wepay.api.CheckoutUri;
import com.lookfirst.wepay.api.Constants.FeePayer;
import com.lookfirst.wepay.api.Constants.Mode;
import com.lookfirst.wepay.api.Constants.PaymentType;
import com.lookfirst.wepay.api.Constants.PrefillInfo;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.math.BigDecimal;

package com.lookfirst.wepay.api.req;



/**
 * https://stage.wepay.com/developer/reference/checkout
 *
 * Creates a checkout for an account. The application can send a user to the checkout_uri so the user can pay the account for the amount specified.
 * NOTE: Checkouts will be expired 30 minutes after they are created if their is no activity on them (ie they were abandoned after creation).
 *
 * When the payer completes the payment, they will be returned to the redirect_uri you used in the /checkout/create call.
 * The checkout_id and the payment authorization code will be uri encoded in the redirect_uri so that you can confirm that the payment was made.
 * You can also use the Instant Payment Notifications system to receive push notifications of checkout state changes.
 * If you did not specify a redirect_uri, they will be returned to the application homepage.
 *
 * @author Jon Scott Stevens
 * @author Jeff Schnitzer
 */
@Data
@EqualsAndHashCode(callSuper=false)
public class CheckoutCreateRequest extends WePayRequest<CheckoutUri> {