1 package com.srv4pos.server.api.seller;
2
3 import com.srv4pos.server.api.infrastructure.Constraints;
4 import com.srv4pos.server.api.infrastructure.SyncEntityInfo;
5 import com.srv4pos.server.api.infrastructure.journal.JournalDate;
6 import org.springframework.roo.addon.javabean.RooJavaBean;
7 import org.springframework.roo.addon.json.RooJson;
8 import org.springframework.roo.addon.tostring.RooToString;
9
10 import javax.validation.constraints.NotNull;
11 import javax.validation.constraints.Pattern;
12 import javax.validation.constraints.Size;
13 import java.util.Date;
14 import java.util.HashMap;
15 import java.util.Map;
16
17 @RooJavaBean
18 @RooToString
19 @RooJson(deepSerialize = true)
20 public class SellerInfo implements SyncEntityInfo {
21
22
23
24
25
26
27
28 public static enum Fields {
29 COUNTRY, NAME, DESCRIPTION, CITY, WORK_HOURS, PHONE
30 }
31
32
33 @NotNull
34 @Size(max = 96)
35 @Pattern(regexp = Constraints.WINDOWS_FILENAME_REGEX)
36 private String corporateId;
37
38 @Size(min = 1, max = 96)
39 private String name;
40
41 @NotNull
42 @Size(max = 2, min = 2)
43 private String country;
44
45 private boolean publicAccess;
46
47 @Size(max = 1024)
48 private String description;
49
50 @Size(max = 50)
51 private String city;
52
53 @Size(max = 100)
54 private String workHours;
55
56 @NotNull
57 private Map<DayOfWeek, WorkHoursInfo> workHoursWeek = new HashMap<DayOfWeek, WorkHoursInfo>();
58
59 @Size(max = 96)
60 private String address;
61
62 @Size(max = 50)
63 private String phone;
64
65 @Size(max = 65535)
66 private String custom;
67
68 private Currency currency;
69
70 private Integer version;
71
72 @JournalDate
73 private Date modified;
74
75 private Double latitude;
76
77 private Double longitude;
78
79 public String getIdentifier() {
80 return getCountry() + getCorporateId();
81 }
82 }