package models.contactix; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Arrays; import java.util.Date; import java.util.List; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.ManyToOne; import javax.persistence.Table; import com.avaje.ebean.Model; import com.fasterxml.jackson.databind.node.ObjectNode; import play.libs.Json; @Entity @Table(name = "phone_numbers") public class PhoneNumber extends Model { @Id public Integer id; @Column(name = "created_at") public Date createdAt = new Date(); @Column(name = "updated_at") public Date updatedAt = new Date(); public String capability; public String location; public String value; @Column(columnDefinition = "tinyint(1) NULL") public boolean preferred; @ManyToOne @JoinColumn(name = "user_id") private User user; public List getCapabilities(){ if(capability != null){ return Arrays.asList(capability.split(",")); } return new ArrayList(); } private final static SimpleDateFormat DATETIME_FORMAT = new SimpleDateFormat("dd.MM.yyyy HH:mm:ss"); public static Finder find = new Finder("contactix", PhoneNumber.class); public void setUser(final User user) { this.user = user; } public String toString() { return "(" + location + ")" + value; } public ObjectNode toJson() { ObjectNode result = Json.newObject(); result.put("id", id); result.put("createdAt", DATETIME_FORMAT.format(createdAt)); result.put("updatedAt", DATETIME_FORMAT.format(updatedAt)); if(user != null) { result.set("user", user.toJson()); } result.put("capability", capability); result.put("location", location); result.put("value", value); return result; } }