package com.chughes.dip.user;
import java.util.HashSet;
import java.util.Set;
import javax.persistence.ElementCollection;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.swing.Spring;
import javax.validation.constraints.Size;
import org.hibernate.validator.constraints.Email;
import org.hibernate.validator.constraints.NotBlank;
import com.chughes.dip.game.UserGameEntity;
@Entity
public class UserEntity {
public static UserEntity NULL_USER;
private int id;
@Size(min=2,message="Username must be at least 2 characters")
private String username;
private String password;
@Email(message="Please provide a valid email address")
private String email;
private Set<UserGameEntity> games = new HashSet<UserGameEntity>();
private Set<String> ips = new HashSet<String>();
private int wins;
private int losses;
private int retreats;
private int level;
private int score;
private int roundgamesplayed = 0;
private Set<String> androidApps;
public int getWins() {
return wins;
}
public void setWins(int wins) {
this.wins = wins;
}
public int getLosses() {
return losses;
}
public void setLosses(int losses) {
this.losses = losses;
}
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@OneToMany
public Set<UserGameEntity> getGames() {
return games;
}
public void setGames(Set<UserGameEntity> games) {
this.games = games;
}
public void addGame(UserGameEntity g){
games.add(g);
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
@ElementCollection
public Set<String> getIps() {
return ips;
}
public void setIps(Set<String> ips) {
this.ips = ips;
}
public int getRetreats() {
return retreats;
}
public void setRetreats(int retreats) {
this.retreats = retreats;
}
public int getLevel() {
return level;
}
public void setLevel(int level) {
this.level = level;
}
public int getScore() {
return score;
}
public void setScore(int score) {
this.score = score;
}
@ElementCollection
public Set<String> getAndroidApps() {
if (androidApps == null)androidApps = new HashSet<String>();
return androidApps;
}
public void setAndroidApps(Set<String> androidApps) {
this.androidApps = androidApps;
}
public int getRoundgamesplayed() {
return roundgamesplayed;
}
public void setRoundgamesplayed(int roundgamesplayed) {
this.roundgamesplayed = roundgamesplayed;
}
}