package com.tencent.model;
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="activity")
public class Activity extends BaseBean {
/**
*
*/
private static final long serialVersionUID = 1860961376762891359L;
private String name;
private Timestamp startDate = null;
private Timestamp endDate = null;
private User creator;
private String location;
private String description;
private int state;
private Set<Team> teams = new HashSet<Team>();
private Set<Resource> resoures = new HashSet<Resource>();
private int scope;
public Activity() {
}
public Activity(String name, String location,
String description, int state, int scope) {
super();
this.name = name;
this.location = location;
this.description = description;
this.state = state;
this.scope = scope;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Column(name = "start_date")
public Timestamp getStartDate() {
return startDate;
}
public void setStartDate(Timestamp startDate) {
this.startDate = startDate;
}
@Column(name = "end_date")
public Timestamp getEndDate() {
return endDate;
}
public void setEndDate(Timestamp endDate) {
this.endDate = endDate;
}
@OneToOne
@JoinColumn(name="id_creator")
public User getCreator() {
return creator;
}
public void setCreator(User creator) {
this.creator = creator;
}
public String getLocation() {
return location;
}
public void setLocation(String location) {
this.location = location;
}
@Basic(fetch = FetchType.LAZY)
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public int getState() {
return state;
}
public void setState(int state) {
this.state = state;
}
@ManyToMany(cascade=CascadeType.ALL)
@JoinTable(name = "team_activity",
joinColumns = {
@JoinColumn(name = "id_team", referencedColumnName = "id")
},
inverseJoinColumns = {
@JoinColumn(name = "id_activity", referencedColumnName = "id")
})
public Set<Team> getTeams() {
return teams;
}
public void setTeams(Set<Team> teams) {
this.teams = teams;
}
@ManyToMany
@JoinTable(name = "activity_resource",
joinColumns = {
@JoinColumn(name = "id_activity", referencedColumnName = "id")
},
inverseJoinColumns = {
@JoinColumn(name = "id_resource", referencedColumnName = "id")
})
public Set<Resource> getResoures() {
return resoures;
}
public void setResoures(Set<Resource> resoures) {
this.resoures = resoures;
}
public int getScope() {
return scope;
}
public void setScope(int scope) {
this.scope = scope;
}
}