Vip.java
3.59 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
package fi.codecrew.moya.model;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.Lob;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
/**
* VIP list. Info staff will use the VIP list information to allow certain
* special treatment of people :)
*
* The VIP list entry can be just a free form description containing the names
* of VIPs and what makes them VIP, or the entry may refer to an EventUser.
*
* Every VIP entry must have a responsible person in the organization. Creator
* must also be recorder.
*
*/
@Entity
@Table(name = "vips")
public class Vip extends GenericEntity {
private static final long serialVersionUID = 1L;
private static final String EVENT_ID_COLUMN = "event_id";
private static final String VIP_EVENT_USER_ID_COLUMN = "vip_event_user_id";
private static final String CREATOR_EVENT_USER_ID_COLUMN = "creator_event_user_id";
private static final String HOST_EVENT_USER_ID_COLUMN = "host_event_user_id";
@Column(name = "description", nullable = false)
@Lob
private String description;
@Column(name = "shortdescr", nullable = false)
@Lob
private String shortdescr;
@Column(name = "created", nullable = false, updatable = false)
@Temporal(TemporalType.TIMESTAMP)
private Date created = new Date();
@ManyToOne
@JoinColumn(name = EVENT_ID_COLUMN, referencedColumnName = LanEvent.ID_COLUMN, nullable = false)
private LanEvent event;
@ManyToOne
@JoinColumn(name = VIP_EVENT_USER_ID_COLUMN, referencedColumnName = EventUser.ID_COLUMN, nullable = true)
private EventUser eventUser;
/**
* Mandatory creator of this VIP list entry.
*/
@ManyToOne
@JoinColumn(name = CREATOR_EVENT_USER_ID_COLUMN, referencedColumnName = EventUser.ID_COLUMN, nullable = false)
private EventUser creator;
/**
* Mandatory responsible person of this VIP list entry.
*/
@ManyToOne
@JoinColumn(name = HOST_EVENT_USER_ID_COLUMN, referencedColumnName = EventUser.ID_COLUMN, nullable = false)
private EventUser host;
@OneToMany(mappedBy = "vip")
private List<VipProduct> products = new ArrayList<>();
public String getShortDisplayDescr() {
String ret = shortdescr;
if ((ret == null || ret.trim().isEmpty()) && description != null) {
ret = description;
if (description.length() > 85)
ret = description.substring(0, 80);
}
return ret;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public Date getCreated() {
return created;
}
public void setCreated(Date created) {
this.created = created;
}
public LanEvent getEvent() {
return event;
}
public void setEvent(LanEvent event) {
this.event = event;
}
public EventUser getEventUser() {
return eventUser;
}
public void setEventUser(EventUser eventUser) {
this.eventUser = eventUser;
}
public EventUser getCreator() {
return creator;
}
public void setCreator(EventUser creator) {
this.creator = creator;
}
public EventUser getHost() {
return host;
}
public void setHost(EventUser host) {
this.host = host;
}
public String getShortdescr() {
return shortdescr;
}
public void setShortdescr(String shortdescr) {
this.shortdescr = shortdescr;
}
public List<VipProduct> getProducts() {
return products;
}
public void setProducts(List<VipProduct> products) {
this.products = products;
}
}