package com.tencent.model;
import java.sql.Blob;
import java.sql.Timestamp;
import java.util.HashSet;
import java.util.Set;
import javax.persistence.Basic;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;
import javax.persistence.OneToOne;
import javax.persistence.Table;
@Entity
@Table(name = "team")
public class Team extends BaseBean {
/**
*
*/
private static final long serialVersionUID = 5432753194791534255L;
private String name;
private int type;
private String description;
private User master;
private Timestamp createDate;
private Blob logo;
private int level;
private Set<User> members = new HashSet<User>();
private Project project;
private Set<Task> tasks = new HashSet<Task>();
private Set<Activity> activities = new HashSet<Activity>();
private Set<Message> messages = new HashSet<Message>();
public Team() {
super();
}
public Team(String name, int type, String description, Blob logo, int level) {
super();
this.name = name;
this.type = type;
this.description = description;
this.logo = logo;
this.level = level;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getType() {
return type;
}
public void setType(int type) {
this.type = type;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
@OneToOne
@JoinColumn(name = "id_master")
public User getMaster() {
return master;
}
public void setMaster(User master) {
this.master = master;
}
@Column(name = "create_date")
public Timestamp getCreateDate() {
return createDate;
}
public void setCreateDate(Timestamp createDate) {
this.createDate = createDate;
}
@Basic(fetch = FetchType.LAZY)
public Blob getLogo() {
return logo;
}
public void setLogo(Blob logo) {
this.logo = logo;
}
public int getLevel() {
return level;
}
public void setLevel(int level) {
this.level = level;
}
@ManyToMany(cascade = { CascadeType.ALL })
@JoinTable(name = "team_user", joinColumns = { @JoinColumn(name = "id_user", referencedColumnName = "id") }, inverseJoinColumns = { @JoinColumn(name = "id_team", referencedColumnName = "id") })
public Set<User> getMembers() {
return members;
}
public void setMembers(Set<User> members) {
this.members = members;
}
@OneToOne(mappedBy = "team")
public Project getProject() {
return project;
}
public void setProject(Project project) {
this.project = project;
}
@ManyToMany(mappedBy = "acceptedTeams")
public Set<Task> getTasks() {
return tasks;
}
public void setTasks(Set<Task> tasks) {
this.tasks = tasks;
}
@ManyToMany(mappedBy = "teams")
public Set<Activity> getActivities() {
return activities;
}
public void setActivities(Set<Activity> activities) {
this.activities = activities;
}
@ManyToMany(mappedBy = "teams")
public Set<Message> getMessages() {
return messages;
}
public void setMessages(Set<Message> messages) {
this.messages = messages;
}
}