Subversion Repositories SmartDukaan

Rev

Rev 23019 | Rev 23339 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
22600 ashik.ali 1
package com.spice.profitmandi.dao.entity.catalog;
2
 
3
import java.io.Serializable;
4
import java.time.LocalDateTime;
22859 ashik.ali 5
import java.time.format.DateTimeFormatter;
6
import java.util.HashSet;
7
import java.util.Set;
22600 ashik.ali 8
 
9
import javax.persistence.Column;
10
import javax.persistence.Convert;
11
import javax.persistence.Entity;
23297 ashik.ali 12
import javax.persistence.EnumType;
13
import javax.persistence.Enumerated;
22600 ashik.ali 14
import javax.persistence.GeneratedValue;
15
import javax.persistence.GenerationType;
16
import javax.persistence.Id;
17
import javax.persistence.Table;
22859 ashik.ali 18
import javax.persistence.Transient;
22600 ashik.ali 19
 
20
import com.spice.profitmandi.dao.convertor.LocalDateTimeAttributeConverter;
21
import com.spice.profitmandi.dao.enumuration.catalog.SchemeAmountType;
22653 ashik.ali 22
import com.spice.profitmandi.dao.enumuration.catalog.SchemeType;
22600 ashik.ali 23
 
24
/**
25
 * This class basically contains scheme details
26
 * 
27
 * @author ashikali
28
 *
29
 */
30
@Entity
22653 ashik.ali 31
@Table(name="catalog.scheme", schema = "catalog")
22600 ashik.ali 32
public class Scheme implements Serializable{
33
 
34
	private static final long serialVersionUID = 1L;
35
 
36
	public Scheme() {
37
	}
38
 
39
	@Id
40
	@Column(name="id")
41
	@GeneratedValue(strategy = GenerationType.IDENTITY)
42
	private int id;
43
 
22653 ashik.ali 44
	@Column(name = "name")
45
	private String name;
22600 ashik.ali 46
 
22653 ashik.ali 47
	@Column(name = "description")
48
	private String description;
22600 ashik.ali 49
 
22653 ashik.ali 50
	@Column(name = "type")
23297 ashik.ali 51
	@Enumerated(EnumType.STRING)
22653 ashik.ali 52
	private SchemeType type;
53
 
22600 ashik.ali 54
	@Column(name = "amount_type")
23297 ashik.ali 55
	@Enumerated(EnumType.STRING)
22600 ashik.ali 56
	private SchemeAmountType amountType;
57
 
58
	@Column(name = "amount")
59
	private float amount;
60
 
61
	@Convert(converter = LocalDateTimeAttributeConverter.class)
23019 ashik.ali 62
	@Column(name = "start_date_time")
63
	private LocalDateTime startDateTime = LocalDateTime.now();
22600 ashik.ali 64
 
65
	@Convert(converter = LocalDateTimeAttributeConverter.class)
23019 ashik.ali 66
	@Column(name = "end_date_time")
67
	private LocalDateTime endDateTime = LocalDateTime.now();
22608 ashik.ali 68
 
69
	@Convert(converter = LocalDateTimeAttributeConverter.class)
22600 ashik.ali 70
	@Column(name = "create_timestamp")
22859 ashik.ali 71
	private LocalDateTime createTimestamp = LocalDateTime.now();
22600 ashik.ali 72
 
22653 ashik.ali 73
	@Convert(converter = LocalDateTimeAttributeConverter.class)
74
	@Column(name = "active_timestamp")
75
	private LocalDateTime activeTimestamp = null;
76
 
77
	@Convert(converter = LocalDateTimeAttributeConverter.class)
22702 ashik.ali 78
	@Column(name = "expire_timestamp")
22653 ashik.ali 79
	private LocalDateTime expireTimestamp = null;
80
 
22600 ashik.ali 81
	@Column(name = "created_by")
82
	private int createdBy;
83
 
22859 ashik.ali 84
	@Column(name = "retailer_all")
85
	private boolean retailerAll;
22600 ashik.ali 86
 
22859 ashik.ali 87
	@Transient
88
	private Set<Integer> retailerIds = new HashSet<>();
89
 
90
	@Transient
91
	private Set<Integer> itemIds = new HashSet<>();
92
 
22600 ashik.ali 93
	public int getId() {
94
		return id;
95
	}
96
	public void setId(int id) {
97
		this.id = id;
98
	}
99
 
22653 ashik.ali 100
	public String getName() {
101
		return name;
22600 ashik.ali 102
	}
22653 ashik.ali 103
	public void setName(String name) {
104
		this.name = name;
22600 ashik.ali 105
	}
106
 
22653 ashik.ali 107
	public String getDescription() {
108
		return description;
22600 ashik.ali 109
	}
22653 ashik.ali 110
 
111
	public void setDescription(String description) {
112
		this.description = description;
22600 ashik.ali 113
	}
114
 
22653 ashik.ali 115
	public SchemeType getType() {
116
		return type;
117
	}
118
 
119
	public void setType(SchemeType type) {
120
		this.type = type;
121
	}
122
 
123
 
22600 ashik.ali 124
	public SchemeAmountType getAmountType() {
125
		return amountType;
126
	}
127
 
128
	public void setAmountType(SchemeAmountType amountType) {
129
		this.amountType = amountType;
130
	}
131
 
132
	public float getAmount() {
133
		return amount;
134
	}
135
	public void setAmount(float amount) {
136
		this.amount = amount;
137
	}
138
 
23019 ashik.ali 139
	public LocalDateTime getStartDateTime() {
140
		return startDateTime;
22600 ashik.ali 141
	}
23019 ashik.ali 142
 
143
	public void setStartDateTime(LocalDateTime startDateTime) {
144
		this.startDateTime = startDateTime;
22600 ashik.ali 145
	}
22653 ashik.ali 146
 
23019 ashik.ali 147
	public LocalDateTime getEndDateTime() {
148
		return endDateTime;
22653 ashik.ali 149
	}
23019 ashik.ali 150
 
151
	public void setEndDateTime(LocalDateTime endDateTime) {
152
		this.endDateTime = endDateTime;
22653 ashik.ali 153
	}
154
 
22859 ashik.ali 155
	public LocalDateTime getCreateTimestamp() {
156
		return createTimestamp;
22600 ashik.ali 157
	}
22859 ashik.ali 158
	public void setCreateTimestamp(LocalDateTime createTimestamp) {
159
		this.createTimestamp = createTimestamp;
22600 ashik.ali 160
	}
161
	public int getCreatedBy() {
162
		return createdBy;
163
	}
164
	public void setCreatedBy(int createdBy) {
165
		this.createdBy = createdBy;
166
	}
22653 ashik.ali 167
 
168
	public LocalDateTime getActiveTimestamp() {
169
		return activeTimestamp;
22600 ashik.ali 170
	}
22653 ashik.ali 171
 
172
	public void setActiveTimestamp(LocalDateTime activeTimestamp) {
173
		this.activeTimestamp = activeTimestamp;
22600 ashik.ali 174
	}
175
 
22653 ashik.ali 176
	public LocalDateTime getExpireTimestamp() {
177
		return expireTimestamp;
178
	}
179
 
180
	public void setExpireTimestamp(LocalDateTime expireTimestamp) {
181
		this.expireTimestamp = expireTimestamp;
182
	}
183
 
22859 ashik.ali 184
	public boolean isRetailerAll() {
185
		return retailerAll;
22653 ashik.ali 186
	}
187
 
22859 ashik.ali 188
	public void setRetailerAll(boolean retailerAll) {
189
		this.retailerAll = retailerAll;
22653 ashik.ali 190
	}
22859 ashik.ali 191
 
23019 ashik.ali 192
	public String getFormattedStartDateTime(){
193
		if(startDateTime == null){
22859 ashik.ali 194
			return null;
195
		}
196
    	DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd-MM-YYYY HH:mm");
23019 ashik.ali 197
		return startDateTime.format(formatter);
22859 ashik.ali 198
    }
199
 
23019 ashik.ali 200
	public String getFormattedEndDateTime(){
201
		if(endDateTime == null){
22859 ashik.ali 202
			return null;
203
		}
204
    	DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd-MM-YYYY HH:mm");
23019 ashik.ali 205
		return endDateTime.format(formatter);
22859 ashik.ali 206
    }
207
 
208
	public String getFormattedCreateTimestamp(){
209
		if(createTimestamp == null){
210
			return null;
211
		}
212
    	DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd-MM-YYYY HH:mm");
213
		return createTimestamp.format(formatter);
214
    }
215
 
216
	public String getFormattedActiveTimestamp(){
217
		if(activeTimestamp == null){
218
			return null;
219
		}
220
    	DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd-MM-YYYY HH:mm");
221
		return activeTimestamp.format(formatter);
222
    }
223
 
224
	public String getFormattedExpireTimestamp(){
225
		if(expireTimestamp == null){
226
			return null;
227
		}
228
    	DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd-MM-YYYY HH:mm");
229
		return expireTimestamp.format(formatter);
230
    }
231
 
232
	public Set<Integer> getRetailerIds() {
233
		return retailerIds;
234
	}
235
 
236
	public void setRetailerIds(Set<Integer> retailerIds) {
237
		this.retailerIds = retailerIds;
238
	}
239
 
240
	public String getRetailerIdsString(){
241
		Set<String> stringRetailerIds = new HashSet<>();
242
		if(!retailerIds.isEmpty()){
243
			for(int retailerId : retailerIds){
244
				stringRetailerIds.add(String.valueOf(retailerId));
245
			}
246
		}
247
		return String.join(", ", stringRetailerIds);
248
	}
249
 
250
	public Set<Integer> getItemIds() {
251
		return itemIds;
252
	}
253
 
254
	public void setItemIds(Set<Integer> itemIds) {
255
		this.itemIds = itemIds;
256
	}
257
 
258
	public String getItemIdsString(){
259
		Set<String> stringItemIds = new HashSet<>();
260
		if(!itemIds.isEmpty()){
261
			for(int itemId : itemIds){
262
				stringItemIds.add(String.valueOf(itemId));
263
			}
264
		}
265
		return String.join(", ", stringItemIds);
266
	}
267
 
22600 ashik.ali 268
	@Override
269
	public int hashCode() {
270
		final int prime = 31;
271
		int result = 1;
272
		result = prime * result + id;
273
		return result;
274
	}
275
	@Override
276
	public boolean equals(Object obj) {
277
		if (this == obj)
278
			return true;
279
		if (obj == null)
280
			return false;
281
		if (getClass() != obj.getClass())
282
			return false;
283
		Scheme other = (Scheme) obj;
284
		if (id != other.id)
285
			return false;
286
		return true;
287
	}
23019 ashik.ali 288
 
22600 ashik.ali 289
	@Override
290
	public String toString() {
22653 ashik.ali 291
		return "Scheme [id=" + id + ", name=" + name + ", description=" + description + ", type=" + type
23019 ashik.ali 292
				+ ", amountType=" + amountType + ", amount=" + amount + ", startDateTime=" + startDateTime
293
				+ ", endDateTime=" + endDateTime + ", createTimestamp=" + createTimestamp + ", activeTimestamp="
294
				+ activeTimestamp + ", expireTimestamp=" + expireTimestamp + ", createdBy=" + createdBy
295
				+ ", retailerAll=" + retailerAll + ", retailerIds=" + retailerIds + ", itemIds=" + itemIds + "]";
22600 ashik.ali 296
	}
22653 ashik.ali 297
 
23019 ashik.ali 298
 
22600 ashik.ali 299
}