package persistencia;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.ManyToMany;
import javax.persistence.OneToMany;
import javax.validation.constraints.NotNull;
/**
* Entity implementation class for Entity: Sitio de Interes
*
*/
@Entity
public class SitioInteres implements Serializable, Notificacion {
@Id
@GeneratedValue
private int id;
@NotNull
@Column(unique=true)
private String Nombre;
private String Descripcion;
private static final long serialVersionUID = 1L;
private double latitud;
private double longitud;
private String googleCalendarId;
@ManyToMany
private Collection<Categoria> categorias;
@OneToMany(mappedBy="sitioInteres")
private Collection<CheckIn> checkIns;
@OneToMany(cascade={CascadeType.ALL})
private Collection<Imagen> fotos;
public SitioInteres() {
super();
}
public int getId() {
return this.id;
}
public void setId(int id) {
this.id = id;
}
public String getNombre() {
return this.Nombre;
}
public void setNombre(String Nombre) {
this.Nombre = Nombre;
}
public String getDescripcion() {
return this.Descripcion;
}
public void setDescripcion(String Descripcion) {
this.Descripcion = Descripcion;
}
public Collection<CheckIn> getCheckIns() {
return checkIns;
}
public void setCheckIns(Collection<CheckIn> checkIns) {
this.checkIns = checkIns;
}
public Collection<Categoria> getCategorias() {
return categorias;
}
public void setCategorias(Collection<Categoria> categorias) {
this.categorias = categorias;
}
public double getLatitud() {
return latitud;
}
public void setLatitud(double latitud) {
this.latitud = latitud;
}
public double getLongitud() {
return longitud;
}
public void setLongitud(double longitud) {
this.longitud = longitud;
}
public Collection<Imagen> getFotos() {
return fotos;
}
public void setFotos(Collection<Imagen> fotos) {
this.fotos = fotos;
}
public String getGoogleCalendarId() {
return googleCalendarId;
}
public void setGoogleCalendarId(String googleCalendarId) {
this.googleCalendarId = googleCalendarId;
}
public List<Notificacion> getCheckInAmigos(Usuario usuario) {
List<Notificacion> ret = new ArrayList<Notificacion>();
for (CheckIn checkIn : checkIns) {
if (checkIn.getUsuario().getContactos().contains(usuario)) {
ret.add(checkIn);
}
}
return ret;
}
}