// Path: src/main/java/com/lookfirst/wepay/api/Checkout.java
// @Data
// @NoArgsConstructor
// @AllArgsConstructor
// @EqualsAndHashCode(callSuper=false)
// public static class ShippingAddress {
// 	private String address1;
// 	private String address2;
// 	private String city;
// 	private String state;
// 	private String zip;
// 	private String country;
// 	private String region;
// 	private String postalcode;
// }
// 
// 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 State {
// 	action_required {
// 		@Override
// 		public String toString() { return "action required"; }
// 	},
// 	active,
// 	approved,
// 	authorized,
// 	available,
// 	cancelled,
// 	captured,
// 	charged_back {
// 		@Override
// 		public String toString() { return "charged back"; }
// 	},
// 	completed,
// 	deleted,
// 	disabled,
// 	ended,
// 	expired,
// 	failed,
// 	invalid,
// 	new_ {
// 		@Override
// 		public String toString() { return "new"; }
// 	},
// 	pending,
// 	refunded,
// 	registered,
// 	reserved,
// 	retrying,
// 	revoked,
// 	settled,
// 	started,
// 	stopped,
// 	transition,
// 	trial
// }


import java.io.Serializable;
import java.math.BigDecimal;
import lombok.Data;
import com.lookfirst.wepay.api.Checkout.ShippingAddress;
import com.lookfirst.wepay.api.Constants.FeePayer;
import com.lookfirst.wepay.api.Constants.State;
package com.lookfirst.wepay.api;




/**
 * This call allows you to lookup the details of a payment preapproval on WePay.
 *
 * @author Jon Scott Stevens
 * @author Jeff Schnitzer
 */
@Data
public class Preapproval implements Serializable {
	private static final long serialVersionUID = 1L;

	/** The unique ID of the preapproval. */
	private Long preapprovalId;
	/** The uri that you send the user to so they can enter their payment info and approve the preapproval. */
	private String preapprovalUri;
	/** A uri that you can send the user to if they need to update their payment method. */
	private String manageUri;
	/** The unique ID of the WePay account where the money will go. */
	private Long accountId;

	/** A short description of what the payer is being charged for. */
	private String shortDescription;
	/** A longer description of what the payer is being charged for (if set). */
	private String longDescription;

	/** The currency that any charges will take place in (for now always USD). */
	private String currency;
	/** The amount in dollars that the application can charge the payer automatically every period. */
	private BigDecimal amount;
	/** Who is paying the fee (either "payer" for the person paying, "payee" for the person receiving the money, "payer_from_app" if payer is paying for app fee and the app is paying WePay fees, or "payee_from_app" if payee is paying for app fee and app is paying for WePay fees). */
// Path: src/main/java/com/lookfirst/wepay/api/Checkout.java
// @Data
// @NoArgsConstructor
// @AllArgsConstructor
// @EqualsAndHashCode(callSuper=false)
// public static class ShippingAddress {
// 	private String address1;
// 	private String address2;
// 	private String city;
// 	private String state;
// 	private String zip;
// 	private String country;
// 	private String region;
// 	private String postalcode;
// }
// 
// 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 State {
// 	action_required {
// 		@Override
// 		public String toString() { return "action required"; }
// 	},
// 	active,
// 	approved,
// 	authorized,
// 	available,
// 	cancelled,
// 	captured,
// 	charged_back {
// 		@Override
// 		public String toString() { return "charged back"; }
// 	},
// 	completed,
// 	deleted,
// 	disabled,
// 	ended,
// 	expired,
// 	failed,
// 	invalid,
// 	new_ {
// 		@Override
// 		public String toString() { return "new"; }
// 	},
// 	pending,
// 	refunded,
// 	registered,
// 	reserved,
// 	retrying,
// 	revoked,
// 	settled,
// 	started,
// 	stopped,
// 	transition,
// 	trial
// }


// Path: src/main/java/com/lookfirst/wepay/api/Preapproval.java
import java.io.Serializable;
import java.math.BigDecimal;
import lombok.Data;
import com.lookfirst.wepay.api.Checkout.ShippingAddress;
import com.lookfirst.wepay.api.Constants.FeePayer;
import com.lookfirst.wepay.api.Constants.State;

package com.lookfirst.wepay.api;




/**
 * This call allows you to lookup the details of a payment preapproval on WePay.
 *
 * @author Jon Scott Stevens
 * @author Jeff Schnitzer
 */
@Data
public class Preapproval implements Serializable {
	private static final long serialVersionUID = 1L;

	/** The unique ID of the preapproval. */
	private Long preapprovalId;
	/** The uri that you send the user to so they can enter their payment info and approve the preapproval. */
	private String preapprovalUri;
	/** A uri that you can send the user to if they need to update their payment method. */
	private String manageUri;
	/** The unique ID of the WePay account where the money will go. */
	private Long accountId;

	/** A short description of what the payer is being charged for. */
	private String shortDescription;
	/** A longer description of what the payer is being charged for (if set). */
	private String longDescription;

	/** The currency that any charges will take place in (for now always USD). */
	private String currency;
	/** The amount in dollars that the application can charge the payer automatically every period. */
	private BigDecimal amount;
	/** Who is paying the fee (either "payer" for the person paying, "payee" for the person receiving the money, "payer_from_app" if payer is paying for app fee and the app is paying WePay fees, or "payee_from_app" if payee is paying for app fee and app is paying for WePay fees). */
	private FeePayer feePayer;