// Path: common/src/main/java/cz/gopay/api/v3/model/common/Currency.java
// public enum Currency {
//     CZK(203),
//     EUR(978),
//     PLN(985),
//     HUF(348),
//     USD(840),
//     GBP(826),
//     BGN(975),
//     HRK(191),
//     RON(946);
//         
//     public static final String CODE_CZK = String.valueOf(CZK);
//     public static final String CODE_EUR = String.valueOf(EUR);
//     public static final String CODE_PLN = String.valueOf(PLN);
//     public static final String CODE_HUF = String.valueOf(HUF);
//     public static final String CODE_USD = String.valueOf(USD);
//     public static final String CODE_GBP = String.valueOf(GBP);
//     public static final String CODE_BGN = String.valueOf(BGN);
//     public static final String CODE_HRK = String.valueOf(HRK);
//     public static final String CODE_RON = String.valueOf(RON);
//     
//     private Integer numericalCode;
// 
//     private Currency(Integer numericalCode) {
//         this.numericalCode = numericalCode;
//     }
// 
//     public Integer getNumericalCode() {
//         return numericalCode;
//     }
// 
//     public String getCode() {
//         return String.valueOf(this);
//     }
// 
//     public void setNumericalCode(int numericalCode) {
//         this.numericalCode = numericalCode;
//     }
// 
//     public static Currency getByCode(String code) {
//         Currency result = null;
//         for (Currency item : EnumSet.allOf(Currency.class)) {
//             if (String.valueOf(item).equals(code)) {
//                 result = item;
//                 break;
//             }
//         }
//         return result;
//     }
// 
//     public static Currency getByNumericalCode(Integer code) {
//         Currency result = null;
//         for (Currency item : EnumSet.allOf(Currency.class)) {
//             if (item.getNumericalCode().equals(code)) {
//                 result = item;
//                 break;
//             }
//         }
// 
//         return result;
//     }
// 
// }
// 
// Path: common/src/main/java/cz/gopay/api/v3/model/eet/EETCode.java
// @XmlRootElement
// public class EETCode {
// 	
// 	@XmlElement(name = "fik")
// 	private String fik;
// 	
// 	@XmlElement(name = "bkp")
// 	private String bkp;
// 	
// 	@XmlElement(name = "pkp")
// 	private String pkp;
// 	
// 	@Override
// 	public String toString() {
// 		return String.format("EETCode [fik=%s, bkp=%s, pkp=%s]", fik, bkp, pkp);
// 	}
// 	
// 	public String getFik() {
// 		return fik;
// 	}
// 	
// 	public void setFik(String fik) {
// 		this.fik = fik;
// 	}
// 	
// 	public String getBkp() {
// 		return bkp;
// 	}
// 	
// 	public void setBkp(String bkp) {
// 		this.bkp = bkp;
// 	}
// 	
// 	public String getPkp() {
// 		return pkp;
// 	}
// 	
// 	public void setPkp(String pkp) {
// 		this.pkp = pkp;
// 	}
// }
// 
// Path: common/src/main/java/cz/gopay/api/v3/model/common/SessionSubState.java
// public enum SessionSubState {
// 	_101,
// 	_102,
// 	_3001,
// 	_3002,
// 	_3003,
// 	_5001,
// 	_5002,
// 	_5003,
// 	_5004,
// 	_5005,
// 	_5006,
// 	_5007,
// 	_5008,
// 	_5009,
// 	_5010,
// 	_5011,
// 	_5012,
// 	_5013,
// 	_5014,
// 	_5015,
// 	_5016,
// 	_5017,
// 	_5018,
// 	_5019,
// 	_5020,
// 	_5021,
// 	_5022,
// 	_5023,
// 	_5024,
// 	_5025,
// 	_5026,
// 	_5027,
// 	_5028,
// 	_5029,
// 	_5030,
// 	_5031,
// 	_5033,
// 	_5035,
// 	_5036,
// 	_5037,
// 	_5038,
// 	_5039,
// 	_5040,
// 	_5041,
// 	_5042,
// 	_5043,
// 	_5044,
// 	_5045,
// 	_5046,
// 	_5047,
// 	_5048,
// 	_6001,
// 	_6002,
// 	_6003,
// 	_6004,
// 	_6005,
// 	_6501,
// 	_6502,
// 	_6504
// }


import java.util.ArrayList;
import java.util.List;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import cz.gopay.api.v3.model.common.Currency;
import cz.gopay.api.v3.model.eet.EETCode;
import cz.gopay.api.v3.model.common.SessionSubState;
import cz.gopay.api.v3.model.payment.support.*;
package cz.gopay.api.v3.model.payment;




@XmlRootElement
public class Payment {

    public enum SessionState {
        CREATED,
        PAYMENT_METHOD_CHOSEN,
        PAID,
        AUTHORIZED,
        CANCELED,
        TIMEOUTED,
        REFUNDED,
        PARTIALLY_REFUNDED
    }

    @XmlElement(name = "id")
    private Long id;

    @XmlElement(name = "parent_id")
    private Long parentId;

    @XmlElement(name = "order_number")
    private String orderNumber;

    @XmlElement(name = "state")
    private SessionState state;
    
    @XmlElement(name = "sub_state")
// Path: common/src/main/java/cz/gopay/api/v3/model/common/Currency.java
// public enum Currency {
//     CZK(203),
//     EUR(978),
//     PLN(985),
//     HUF(348),
//     USD(840),
//     GBP(826),
//     BGN(975),
//     HRK(191),
//     RON(946);
//         
//     public static final String CODE_CZK = String.valueOf(CZK);
//     public static final String CODE_EUR = String.valueOf(EUR);
//     public static final String CODE_PLN = String.valueOf(PLN);
//     public static final String CODE_HUF = String.valueOf(HUF);
//     public static final String CODE_USD = String.valueOf(USD);
//     public static final String CODE_GBP = String.valueOf(GBP);
//     public static final String CODE_BGN = String.valueOf(BGN);
//     public static final String CODE_HRK = String.valueOf(HRK);
//     public static final String CODE_RON = String.valueOf(RON);
//     
//     private Integer numericalCode;
// 
//     private Currency(Integer numericalCode) {
//         this.numericalCode = numericalCode;
//     }
// 
//     public Integer getNumericalCode() {
//         return numericalCode;
//     }
// 
//     public String getCode() {
//         return String.valueOf(this);
//     }
// 
//     public void setNumericalCode(int numericalCode) {
//         this.numericalCode = numericalCode;
//     }
// 
//     public static Currency getByCode(String code) {
//         Currency result = null;
//         for (Currency item : EnumSet.allOf(Currency.class)) {
//             if (String.valueOf(item).equals(code)) {
//                 result = item;
//                 break;
//             }
//         }
//         return result;
//     }
// 
//     public static Currency getByNumericalCode(Integer code) {
//         Currency result = null;
//         for (Currency item : EnumSet.allOf(Currency.class)) {
//             if (item.getNumericalCode().equals(code)) {
//                 result = item;
//                 break;
//             }
//         }
// 
//         return result;
//     }
// 
// }
// 
// Path: common/src/main/java/cz/gopay/api/v3/model/eet/EETCode.java
// @XmlRootElement
// public class EETCode {
// 	
// 	@XmlElement(name = "fik")
// 	private String fik;
// 	
// 	@XmlElement(name = "bkp")
// 	private String bkp;
// 	
// 	@XmlElement(name = "pkp")
// 	private String pkp;
// 	
// 	@Override
// 	public String toString() {
// 		return String.format("EETCode [fik=%s, bkp=%s, pkp=%s]", fik, bkp, pkp);
// 	}
// 	
// 	public String getFik() {
// 		return fik;
// 	}
// 	
// 	public void setFik(String fik) {
// 		this.fik = fik;
// 	}
// 	
// 	public String getBkp() {
// 		return bkp;
// 	}
// 	
// 	public void setBkp(String bkp) {
// 		this.bkp = bkp;
// 	}
// 	
// 	public String getPkp() {
// 		return pkp;
// 	}
// 	
// 	public void setPkp(String pkp) {
// 		this.pkp = pkp;
// 	}
// }
// 
// Path: common/src/main/java/cz/gopay/api/v3/model/common/SessionSubState.java
// public enum SessionSubState {
// 	_101,
// 	_102,
// 	_3001,
// 	_3002,
// 	_3003,
// 	_5001,
// 	_5002,
// 	_5003,
// 	_5004,
// 	_5005,
// 	_5006,
// 	_5007,
// 	_5008,
// 	_5009,
// 	_5010,
// 	_5011,
// 	_5012,
// 	_5013,
// 	_5014,
// 	_5015,
// 	_5016,
// 	_5017,
// 	_5018,
// 	_5019,
// 	_5020,
// 	_5021,
// 	_5022,
// 	_5023,
// 	_5024,
// 	_5025,
// 	_5026,
// 	_5027,
// 	_5028,
// 	_5029,
// 	_5030,
// 	_5031,
// 	_5033,
// 	_5035,
// 	_5036,
// 	_5037,
// 	_5038,
// 	_5039,
// 	_5040,
// 	_5041,
// 	_5042,
// 	_5043,
// 	_5044,
// 	_5045,
// 	_5046,
// 	_5047,
// 	_5048,
// 	_6001,
// 	_6002,
// 	_6003,
// 	_6004,
// 	_6005,
// 	_6501,
// 	_6502,
// 	_6504
// }


// Path: common/src/main/java/cz/gopay/api/v3/model/payment/Payment.java
import java.util.ArrayList;
import java.util.List;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import cz.gopay.api.v3.model.common.Currency;
import cz.gopay.api.v3.model.eet.EETCode;
import cz.gopay.api.v3.model.common.SessionSubState;
import cz.gopay.api.v3.model.payment.support.*;

package cz.gopay.api.v3.model.payment;




@XmlRootElement
public class Payment {

    public enum SessionState {
        CREATED,
        PAYMENT_METHOD_CHOSEN,
        PAID,
        AUTHORIZED,
        CANCELED,
        TIMEOUTED,
        REFUNDED,
        PARTIALLY_REFUNDED
    }

    @XmlElement(name = "id")
    private Long id;

    @XmlElement(name = "parent_id")
    private Long parentId;

    @XmlElement(name = "order_number")
    private String orderNumber;

    @XmlElement(name = "state")
    private SessionState state;
    
    @XmlElement(name = "sub_state")
    private SessionSubState subState;