Subversion Repositories SmartDukaan

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
36190 ranu 1
package com.spice.profitmandi.dao.entity.cs;
2
 
3
import javax.persistence.*;
4
import java.time.LocalDate;
5
import java.time.LocalDateTime;
6
import java.util.Objects;
7
 
8
/**
9
 * Entity to store daily agent performance insights from Knowlarity.
10
 * Data is updated on each scheduled scrape (every 2 hours) for the same date.
11
 * Historical data is preserved for past dates.
12
 */
13
@Entity
14
@Table(name = "cs.agent_daily_insight",
15
        uniqueConstraints = @UniqueConstraint(columnNames = {"agent_email", "insight_date"}))
16
public class AgentDailyInsight {
17
 
18
    @Id
19
    @GeneratedValue(strategy = GenerationType.IDENTITY)
20
    private Long id;
21
 
22
    @Column(name = "agent_name")
23
    private String agentName;
24
 
25
    @Column(name = "agent_email")
26
    private String agentEmail;
27
 
28
    @Column(name = "agent_number")
29
    private String agentNumber;
30
 
31
    @Column(name = "agent_sip_id")
32
    private String agentSipId;
33
 
34
    @Column(name = "auth_id")
35
    private Integer authId;
36
 
37
    @Column(name = "total_logged_in_time")
38
    private String totalLoggedInTime;
39
 
40
    @Column(name = "logged_in_seconds")
41
    private Integer loggedInSeconds;
42
 
43
    @Column(name = "total_break_duration")
44
    private String totalBreakDuration;
45
 
46
    @Column(name = "break_seconds")
47
    private Integer breakSeconds;
48
 
49
    @Column(name = "available_time")
50
    private String availableTime;
51
 
52
    @Column(name = "available_seconds")
53
    private Integer availableSeconds;
54
 
55
    @Column(name = "total_talk_time")
56
    private String totalTalkTime;
57
 
58
    @Column(name = "talk_seconds")
59
    private Integer talkSeconds;
60
 
61
    @Column(name = "calls_answered")
62
    private Integer callsAnswered;
63
 
64
    @Column(name = "missed_calls")
65
    private Integer missedCalls;
66
 
67
    @Column(name = "total_calls")
68
    private Integer totalCalls;
69
 
70
    @Column(name = "insight_date")
71
    private LocalDate insightDate;
72
 
73
    @Column(name = "last_updated")
74
    private LocalDateTime lastUpdated;
75
 
76
    @Column(name = "create_timestamp")
77
    private LocalDateTime createTimestamp;
78
 
79
    public AgentDailyInsight() {
80
    }
81
 
82
    public AgentDailyInsight(String agentName, String agentEmail, LocalDate insightDate) {
83
        this.agentName = agentName;
84
        this.agentEmail = agentEmail;
85
        this.insightDate = insightDate;
86
        this.createTimestamp = LocalDateTime.now();
87
        this.lastUpdated = LocalDateTime.now();
88
    }
89
 
90
    // Getters and Setters
91
 
92
    public Long getId() {
93
        return id;
94
    }
95
 
96
    public void setId(Long id) {
97
        this.id = id;
98
    }
99
 
100
    public String getAgentName() {
101
        return agentName;
102
    }
103
 
104
    public void setAgentName(String agentName) {
105
        this.agentName = agentName;
106
    }
107
 
108
    public String getAgentEmail() {
109
        return agentEmail;
110
    }
111
 
112
    public void setAgentEmail(String agentEmail) {
113
        this.agentEmail = agentEmail;
114
    }
115
 
116
    public String getAgentNumber() {
117
        return agentNumber;
118
    }
119
 
120
    public void setAgentNumber(String agentNumber) {
121
        this.agentNumber = agentNumber;
122
    }
123
 
124
    public String getAgentSipId() {
125
        return agentSipId;
126
    }
127
 
128
    public void setAgentSipId(String agentSipId) {
129
        this.agentSipId = agentSipId;
130
    }
131
 
132
    public Integer getAuthId() {
133
        return authId;
134
    }
135
 
136
    public void setAuthId(Integer authId) {
137
        this.authId = authId;
138
    }
139
 
140
    public String getTotalLoggedInTime() {
141
        return totalLoggedInTime;
142
    }
143
 
144
    public void setTotalLoggedInTime(String totalLoggedInTime) {
145
        this.totalLoggedInTime = totalLoggedInTime;
146
    }
147
 
148
    public Integer getLoggedInSeconds() {
149
        return loggedInSeconds;
150
    }
151
 
152
    public void setLoggedInSeconds(Integer loggedInSeconds) {
153
        this.loggedInSeconds = loggedInSeconds;
154
    }
155
 
156
    public String getTotalBreakDuration() {
157
        return totalBreakDuration;
158
    }
159
 
160
    public void setTotalBreakDuration(String totalBreakDuration) {
161
        this.totalBreakDuration = totalBreakDuration;
162
    }
163
 
164
    public Integer getBreakSeconds() {
165
        return breakSeconds;
166
    }
167
 
168
    public void setBreakSeconds(Integer breakSeconds) {
169
        this.breakSeconds = breakSeconds;
170
    }
171
 
172
    public String getAvailableTime() {
173
        return availableTime;
174
    }
175
 
176
    public void setAvailableTime(String availableTime) {
177
        this.availableTime = availableTime;
178
    }
179
 
180
    public Integer getAvailableSeconds() {
181
        return availableSeconds;
182
    }
183
 
184
    public void setAvailableSeconds(Integer availableSeconds) {
185
        this.availableSeconds = availableSeconds;
186
    }
187
 
188
    public String getTotalTalkTime() {
189
        return totalTalkTime;
190
    }
191
 
192
    public void setTotalTalkTime(String totalTalkTime) {
193
        this.totalTalkTime = totalTalkTime;
194
    }
195
 
196
    public Integer getTalkSeconds() {
197
        return talkSeconds;
198
    }
199
 
200
    public void setTalkSeconds(Integer talkSeconds) {
201
        this.talkSeconds = talkSeconds;
202
    }
203
 
204
    public Integer getCallsAnswered() {
205
        return callsAnswered;
206
    }
207
 
208
    public void setCallsAnswered(Integer callsAnswered) {
209
        this.callsAnswered = callsAnswered;
210
    }
211
 
212
    public Integer getMissedCalls() {
213
        return missedCalls;
214
    }
215
 
216
    public void setMissedCalls(Integer missedCalls) {
217
        this.missedCalls = missedCalls;
218
    }
219
 
220
    public Integer getTotalCalls() {
221
        return totalCalls;
222
    }
223
 
224
    public void setTotalCalls(Integer totalCalls) {
225
        this.totalCalls = totalCalls;
226
    }
227
 
228
    public LocalDate getInsightDate() {
229
        return insightDate;
230
    }
231
 
232
    public void setInsightDate(LocalDate insightDate) {
233
        this.insightDate = insightDate;
234
    }
235
 
236
    public LocalDateTime getLastUpdated() {
237
        return lastUpdated;
238
    }
239
 
240
    public void setLastUpdated(LocalDateTime lastUpdated) {
241
        this.lastUpdated = lastUpdated;
242
    }
243
 
244
    public LocalDateTime getCreateTimestamp() {
245
        return createTimestamp;
246
    }
247
 
248
    public void setCreateTimestamp(LocalDateTime createTimestamp) {
249
        this.createTimestamp = createTimestamp;
250
    }
251
 
252
    @Override
253
    public boolean equals(Object o) {
254
        if (this == o) return true;
255
        if (o == null || getClass() != o.getClass()) return false;
256
        AgentDailyInsight that = (AgentDailyInsight) o;
257
        return Objects.equals(agentEmail, that.agentEmail) &&
258
                Objects.equals(insightDate, that.insightDate);
259
    }
260
 
261
    @Override
262
    public int hashCode() {
263
        return Objects.hash(agentEmail, insightDate);
264
    }
265
 
266
    @Override
267
    public String toString() {
268
        return "AgentDailyInsight{" +
269
                "id=" + id +
270
                ", agentName='" + agentName + '\'' +
271
                ", agentEmail='" + agentEmail + '\'' +
272
                ", insightDate=" + insightDate +
273
                ", totalLoggedInTime='" + totalLoggedInTime + '\'' +
274
                ", totalBreakDuration='" + totalBreakDuration + '\'' +
275
                ", availableTime='" + availableTime + '\'' +
276
                ", totalTalkTime='" + totalTalkTime + '\'' +
277
                ", lastUpdated=" + lastUpdated +
278
                '}';
279
    }
280
}