Subversion Repositories SmartDukaan

Rev

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