83 lines
2.3 KiB
Java
83 lines
2.3 KiB
Java
package ru.ulstu.ping.model;
|
|
|
|
import jakarta.persistence.Column;
|
|
import jakarta.persistence.DiscriminatorType;
|
|
import jakarta.persistence.Entity;
|
|
import jakarta.persistence.JoinColumn;
|
|
import jakarta.persistence.ManyToOne;
|
|
import jakarta.persistence.Table;
|
|
import jakarta.persistence.Temporal;
|
|
import jakarta.persistence.TemporalType;
|
|
import org.hibernate.annotations.Any;
|
|
import org.hibernate.annotations.AnyDiscriminator;
|
|
import org.hibernate.annotations.AnyDiscriminatorValue;
|
|
import org.hibernate.annotations.AnyKeyJavaClass;
|
|
import org.springframework.format.annotation.DateTimeFormat;
|
|
import ru.ulstu.conference.model.Conference;
|
|
import ru.ulstu.core.model.BaseEntity;
|
|
import ru.ulstu.core.model.UserActivity;
|
|
import ru.ulstu.grant.model.Grant;
|
|
import ru.ulstu.paper.model.Paper;
|
|
import ru.ulstu.project.model.Project;
|
|
import ru.ulstu.user.model.User;
|
|
|
|
import java.util.Date;
|
|
|
|
@Entity
|
|
@Table(name = "ping")
|
|
public class Ping extends BaseEntity {
|
|
@Temporal(value = TemporalType.TIMESTAMP)
|
|
@DateTimeFormat(pattern = "yyyy-MM-dd")
|
|
private Date date;
|
|
|
|
@ManyToOne(optional = false)
|
|
@JoinColumn(name = "users_id")
|
|
private User user;
|
|
|
|
@Column(name = "activity_type", insertable = false, updatable = false)
|
|
private String activityType;
|
|
|
|
@Any
|
|
@AnyDiscriminator(DiscriminatorType.STRING)
|
|
@AnyKeyJavaClass(Integer.class)
|
|
@JoinColumn(name = "activity_id")
|
|
@Column(name = "activity_type")
|
|
@AnyDiscriminatorValue(entity = Conference.class, discriminator = "CONFERENCE")
|
|
@AnyDiscriminatorValue(entity = Paper.class, discriminator = "PAPER")
|
|
@AnyDiscriminatorValue(entity = Project.class, discriminator = "PROJECT")
|
|
@AnyDiscriminatorValue(entity = Grant.class, discriminator = "GRANT")
|
|
private UserActivity activity;
|
|
|
|
public Ping() {
|
|
}
|
|
|
|
public Ping(Date date, User user) {
|
|
this.date = date;
|
|
this.user = user;
|
|
}
|
|
|
|
public Date getDate() {
|
|
return date;
|
|
}
|
|
|
|
public void setDate(Date date) {
|
|
this.date = date;
|
|
}
|
|
|
|
public User getUser() {
|
|
return user;
|
|
}
|
|
|
|
public void setUser(User user) {
|
|
this.user = user;
|
|
}
|
|
|
|
public UserActivity getActivity() {
|
|
return this.activity;
|
|
}
|
|
|
|
public void setActivity(UserActivity activity) {
|
|
this.activity = activity;
|
|
}
|
|
}
|