// Path: src/main/java/info/interactivesystems/gamificationengine/entities/Organisation.java
// @Entity
// public class Organisation implements Serializable {
// 
// 	private static final long serialVersionUID = -6830220885028070098L;
// 
// 	@Id
// 	@GeneratedValue(strategy = GenerationType.IDENTITY)
// 	private int id;
// 
// 	@NotNull
// 	@ManyToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
// 	private Collection<Account> managers;
// 
// 	private String name;
// 
// 	@NotNull
// 	@Column(unique = true)
// 	private String apiKey;
// 
// 	public Organisation(String name) {
// 		super();
// 		this.name = name;
// 		managers = new HashSet<Account>();
// 	}
// 
// 	public Organisation() {
// 		super();
// 		managers = new HashSet<Account>();
// 	}
// 
// 	/**
// 	 * Sets the id of the created organisation.
// 	 * 
// 	 * @param id 
// 	 *           The new id of the organisation
// 	 */
// 	public void setId(int id) {
// 		this.id = id;
// 	}
// 
// 	/**
// 	 * Gets the organisation's id.
// 	 * 
// 	 * @return organisation's id as int
// 	 */
// 	public int getId() {
// 		return id;
// 	}
// 
// 	/**
// 	 * Gets all accounts of the organisation which are associated to this organisation. 
// 	 * Each account belongs to a manager.
// 	 * 
// 	 * @return Collection of all organisation's manager accounts
// 	 */
// 	public Collection<Account> getManagers() {
// 		return managers;
// 	}
// 
// 	/**
// 	 * Sets the list of the organisation's accounts. Each account belongs to a
// 	 * manager.
// 	 * 
// 	 * @param managers
// 	 *             List of all organisation's accounts
// 	 */
// 	public void setManagers(Collection<Account> managers) {
// 		this.managers = managers;
// 	}
// 
// 	/**
// 	 * Gets the organisation's name and returns it as a String.
// 	 * 
// 	 * @return name of the organisation as String.
// 	 */
// 	public String getName() {
// 		return name;
// 	}
// 
// 	/**
// 	 * Sets the name of an organisation.
// 	 * 
// 	 * @param name
// 	 *            The name of the organisation.
// 	 * 
// 	 */
// 	public void setName(String name) {
// 		this.name = name;
// 	}
// 
// 	/**
// 	 * Gets the organisation's unique API key and returns it.
// 	 * 
// 	 * @return the apiKey as a String
// 	 */
// 	public String getApiKey() {
// 		return apiKey;
// 	}
// 
// 	/**
// 	 * Sets the organisation's API key.
// 	 * 
// 	 * @param apiKey
// 	 *		 	 The API key which is unique and specific for one organisation.
// 	 */
// 	public void setApiKey(@NotNull String apiKey) {
// 		this.apiKey = apiKey;
// 	}
// 
// 	/**
// 	 * Adds a new manager's account to the organisation's list of accounts.
// 	 * 
// 	 * @param account
// 	 *            which should be added to the list
// 	 */
// 	public void addManager(@NotNull Account account) {
// 		this.managers.add(account);
// 	}
// }


import info.interactivesystems.gamificationengine.entities.Organisation;
import java.time.LocalDateTime;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.ManyToOne;
import javax.validation.constraints.NotNull;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
package info.interactivesystems.gamificationengine.entities.present;





/**
 * Presents that are in the in-box of the board a player can accept or deny. If the player
 * accept a present its status is set to accepted and an PresentAccepted object is created.
 */
@Entity
@JsonIgnoreProperties({ "belongsTo" })
public class PresentAccepted {

	enum Status {
		ACCEPT, DENIED
	}

	@Id
	@GeneratedValue(strategy = GenerationType.IDENTITY)
	private int id;

	@NotNull
	@ManyToOne
// Path: src/main/java/info/interactivesystems/gamificationengine/entities/Organisation.java
// @Entity
// public class Organisation implements Serializable {
// 
// 	private static final long serialVersionUID = -6830220885028070098L;
// 
// 	@Id
// 	@GeneratedValue(strategy = GenerationType.IDENTITY)
// 	private int id;
// 
// 	@NotNull
// 	@ManyToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
// 	private Collection<Account> managers;
// 
// 	private String name;
// 
// 	@NotNull
// 	@Column(unique = true)
// 	private String apiKey;
// 
// 	public Organisation(String name) {
// 		super();
// 		this.name = name;
// 		managers = new HashSet<Account>();
// 	}
// 
// 	public Organisation() {
// 		super();
// 		managers = new HashSet<Account>();
// 	}
// 
// 	/**
// 	 * Sets the id of the created organisation.
// 	 * 
// 	 * @param id 
// 	 *           The new id of the organisation
// 	 */
// 	public void setId(int id) {
// 		this.id = id;
// 	}
// 
// 	/**
// 	 * Gets the organisation's id.
// 	 * 
// 	 * @return organisation's id as int
// 	 */
// 	public int getId() {
// 		return id;
// 	}
// 
// 	/**
// 	 * Gets all accounts of the organisation which are associated to this organisation. 
// 	 * Each account belongs to a manager.
// 	 * 
// 	 * @return Collection of all organisation's manager accounts
// 	 */
// 	public Collection<Account> getManagers() {
// 		return managers;
// 	}
// 
// 	/**
// 	 * Sets the list of the organisation's accounts. Each account belongs to a
// 	 * manager.
// 	 * 
// 	 * @param managers
// 	 *             List of all organisation's accounts
// 	 */
// 	public void setManagers(Collection<Account> managers) {
// 		this.managers = managers;
// 	}
// 
// 	/**
// 	 * Gets the organisation's name and returns it as a String.
// 	 * 
// 	 * @return name of the organisation as String.
// 	 */
// 	public String getName() {
// 		return name;
// 	}
// 
// 	/**
// 	 * Sets the name of an organisation.
// 	 * 
// 	 * @param name
// 	 *            The name of the organisation.
// 	 * 
// 	 */
// 	public void setName(String name) {
// 		this.name = name;
// 	}
// 
// 	/**
// 	 * Gets the organisation's unique API key and returns it.
// 	 * 
// 	 * @return the apiKey as a String
// 	 */
// 	public String getApiKey() {
// 		return apiKey;
// 	}
// 
// 	/**
// 	 * Sets the organisation's API key.
// 	 * 
// 	 * @param apiKey
// 	 *		 	 The API key which is unique and specific for one organisation.
// 	 */
// 	public void setApiKey(@NotNull String apiKey) {
// 		this.apiKey = apiKey;
// 	}
// 
// 	/**
// 	 * Adds a new manager's account to the organisation's list of accounts.
// 	 * 
// 	 * @param account
// 	 *            which should be added to the list
// 	 */
// 	public void addManager(@NotNull Account account) {
// 		this.managers.add(account);
// 	}
// }


// Path: src/main/java/info/interactivesystems/gamificationengine/entities/present/PresentAccepted.java
import info.interactivesystems.gamificationengine.entities.Organisation;
import java.time.LocalDateTime;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.ManyToOne;
import javax.validation.constraints.NotNull;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;

package info.interactivesystems.gamificationengine.entities.present;





/**
 * Presents that are in the in-box of the board a player can accept or deny. If the player
 * accept a present its status is set to accepted and an PresentAccepted object is created.
 */
@Entity
@JsonIgnoreProperties({ "belongsTo" })
public class PresentAccepted {

	enum Status {
		ACCEPT, DENIED
	}

	@Id
	@GeneratedValue(strategy = GenerationType.IDENTITY)
	private int id;

	@NotNull
	@ManyToOne
	private Organisation belongsTo;