blob: 005787f31d1804d1b62700c5f7fc10d0931c4cc0 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License") + you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package org.apache.openmeetings.persistence.beans.user;
import java.io.Serializable;
import java.util.Date;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.Lob;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
import org.apache.openjpa.persistence.jdbc.ForeignKey;
import org.apache.openmeetings.persistence.beans.room.Room;
import org.simpleframework.xml.Element;
import org.simpleframework.xml.Root;
@Entity
@NamedQueries({
@NamedQuery(name = "getPrivateMessages", query = "select c from PrivateMessage c"),
@NamedQuery(name = "getPrivateMessagesById", query = "select c from PrivateMessage c " +
"where c.privateMessageId = :privateMessageId "),
@NamedQuery(name = "getNumberMessages", query = "select COUNT(c.privateMessageId) from PrivateMessage c " +
"where c.to.user_id = :toUserId " +
"AND c.isTrash = :isTrash " +
"AND c.owner.user_id = :toUserId " +
"AND c.isRead = :isRead " +
"AND c.privateMessageFolderId = :privateMessageFolderId "),
@NamedQuery(name = "updatePrivateMessagesToTrash", query = "UPDATE PrivateMessage c " +
"SET c.isTrash = :isTrash,c.privateMessageFolderId = :privateMessageFolderId " +
"where c.privateMessageId IN (:privateMessageIds) "),
@NamedQuery(name = "updatePrivateMessagesReadStatus", query = "UPDATE PrivateMessage c " +
"SET c.isRead = :isRead " +
"where c.privateMessageId IN (:privateMessageIds) "),
@NamedQuery(name = "moveMailsToFolder", query = "UPDATE PrivateMessage c " +
"SET c.privateMessageFolderId = :privateMessageFolderId, c.isTrash = false " +
"where c.privateMessageId IN (:privateMessageIds) "),
@NamedQuery(name = "deletePrivateMessages", query = "DELETE FROM PrivateMessage c " +
"where c.privateMessageId IN (:privateMessageIds) "),
@NamedQuery(name = "getPrivateMessagesByRoom", query = "select c from PrivateMessage c " +
"where c.room.rooms_id = :roomId ")
})
@Table(name = "private_message")
@Root(name="privatemessage")
public class PrivateMessage implements Serializable {
private static final long serialVersionUID = 7541117437029707792L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name="id")
@Element(data=true)
private long privateMessageId;
@Column(name="subject")
@Element(data=true, required=false)
private String subject;
@Lob
@Column(name="message")
@Element(data=true, required=false)
private String message;
@Column(name="email")
private String email;
@Column(name="inserted")
@Element(data=true)
private Date inserted;
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name="from_id")
@ForeignKey(enabled = true)
@Element(data=true, required=false)
private User from;
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name="to_id")
@ForeignKey(enabled = true)
@Element(data=true, required=false)
private User to;
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name="owner_id")
@ForeignKey(enabled = true)
@Element(data=true, required=false)
private User owner;
@Column(name="booked_room")
@Element(data=true)
private Boolean bookedRoom;
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name="rooms_id")
@ForeignKey(enabled = true)
@Element(data=true, required=false)
private Room room;
@Column(name="is_read")
@Element(data=true)
private Boolean isRead;
@Column(name="is_trash")
@Element(data=true)
private Boolean isTrash;
@Column(name="parent_message_id")
@Element(data=true)
private Long parentMessage;
@Column(name="private_message_folder_id")
@Element(data=true)
private Long privateMessageFolderId;
@Column(name="is_contact_request")
@Element(data=true)
private Boolean isContactRequest;
@Column(name="user_contact_id")
@Element(data=true)
private Long userContactId;
public long getPrivateMessageId() {
return privateMessageId;
}
public void setPrivateMessageId(long privateMessageId) {
this.privateMessageId = privateMessageId;
}
public String getSubject() {
return subject;
}
public void setSubject(String subject) {
this.subject = subject;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public Date getInserted() {
return inserted;
}
public void setInserted(Date inserted) {
this.inserted = inserted;
}
public User getFrom() {
return from;
}
public void setFrom(User from) {
this.from = from;
}
public User getTo() {
return to;
}
public void setTo(User to) {
this.to = to;
}
public User getOwner() {
return owner;
}
public void setOwner(User owner) {
this.owner = owner;
}
public Boolean getBookedRoom() {
return bookedRoom;
}
public void setBookedRoom(Boolean bookedRoom) {
this.bookedRoom = bookedRoom;
}
public Room getRoom() {
return room;
}
public void setRoom(Room room) {
this.room = room;
}
public Long getParentMessage() {
return parentMessage;
}
public void setParentMessage(Long parentMessage) {
this.parentMessage = parentMessage;
}
public Boolean getIsTrash() {
return isTrash;
}
public void setIsTrash(Boolean isTrash) {
this.isTrash = isTrash;
}
public Long getPrivateMessageFolderId() {
return privateMessageFolderId;
}
public void setPrivateMessageFolderId(Long privateMessageFolderId) {
this.privateMessageFolderId = privateMessageFolderId;
}
public Boolean getIsRead() {
return isRead;
}
public void setIsRead(Boolean isRead) {
this.isRead = isRead;
}
public Boolean getIsContactRequest() {
return isContactRequest;
}
public void setIsContactRequest(Boolean isContactRequest) {
this.isContactRequest = isContactRequest;
}
public Long getUserContactId() {
return userContactId;
}
public void setUserContactId(Long userContactId) {
this.userContactId = userContactId;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
}