Implant vid-app-common org.onap.vid.job (main and test)
[vid.git] / vid-app-common / src / main / java / org / onap / vid / model / ServiceInfo.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * VID
4  * ================================================================================
5  * Copyright (C) 2017 - 2019 AT&T Intellectual Property. All rights reserved.
6  * ================================================================================
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  *
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  * ============LICENSE_END=========================================================
19  */
20
21 package org.onap.vid.model;
22
23
24 import com.fasterxml.jackson.annotation.JsonProperty;
25 import org.hibernate.annotations.DynamicUpdate;
26 import org.hibernate.annotations.SelectBeforeUpdate;
27 import org.hibernate.annotations.Type;
28 import org.onap.portalsdk.core.domain.support.DomainVo;
29 import org.onap.vid.job.Job;
30
31 import javax.persistence.*;
32 import java.io.Serializable;
33 import java.util.Date;
34 import java.util.Objects;
35 import java.util.Set;
36 import java.util.UUID;
37
38 /*
39  The following 2 annotations let hibernate to update only fields that actually have been changed.
40  DynamicUpdate tell hibernate to update only dirty fields.
41  SelectBeforeUpdate is needed since during update the entity is detached (get and update are in different sessions)
42 */
43 @DynamicUpdate()
44 @SelectBeforeUpdate()
45 @Entity
46 @Table(name = "vid_service_info")
47 public class ServiceInfo extends DomainVo {
48
49     public enum ServiceAction {
50         INSTANTIATE,
51         DELETE,
52         UPDATE,
53         RESUME,
54         REPLACE
55     }
56
57     private UUID jobId;
58     private UUID templateId;
59     private String userId;
60     private UUID msoRequestId;
61     private boolean aLaCarte;
62     private Job.JobStatus jobStatus;
63     private Date statusModifiedDate;
64     private boolean hidden;
65     private boolean pause;
66     private boolean retryEnabled;
67     private Date deletedAt;
68     private String owningEntityId;
69     private String owningEntityName;
70     private String project;
71     private String aicZoneId;
72     private String aicZoneName;
73     private String tenantId;
74     private String tenantName;
75     private String regionId;
76     private String regionName;
77     private String serviceType;
78     private String subscriberName;
79     private String subscriberId;
80     private String serviceInstanceId;
81     private String serviceInstanceName;
82     private String serviceModelId;
83     private String serviceModelName;
84     private String serviceModelVersion;
85     private Date createdBulkDate;
86     private ServiceAction action;
87
88     public ServiceInfo(){
89
90     }
91
92     public ServiceInfo(String userId, Boolean aLaCarte, Job.JobStatus jobStatus, boolean pause, UUID jobId, UUID templateId,
93                        String owningEntityId, String owningEntityName, String project, String aicZoneId, String aicZoneName,
94                        String tenantId, String tenantName, String regionId, String regionName, String serviceType,
95                        String subscriberName, String subscriberId, String serviceInstanceId, String serviceInstanceName,
96                        String serviceModelId, String serviceModelName, String serviceModelVersion, Date createdBulkDate,
97                        ServiceAction action, boolean retryEnabled) {
98         this.userId = userId;
99         this.aLaCarte = aLaCarte;
100         this.jobStatus = jobStatus;
101         this.jobId = jobId;
102         this.templateId = templateId;
103         this.pause = pause;
104         this.owningEntityId = owningEntityId;
105         this.owningEntityName = owningEntityName;
106         this.project = project;
107         this.aicZoneId = aicZoneId;
108         this.aicZoneName = aicZoneName;
109         this.tenantId = tenantId;
110         this.tenantName = tenantName;
111         this.regionId = regionId;
112         this.regionName = regionName;
113         this.serviceType = serviceType;
114         this.subscriberName = subscriberName;
115         this.subscriberId = subscriberId;
116         this.serviceInstanceId = serviceInstanceId;
117         this.serviceInstanceName = serviceInstanceName;
118         this.serviceModelId = serviceModelId;
119         this.serviceModelName = serviceModelName;
120         this.serviceModelVersion = serviceModelVersion;
121         this.createdBulkDate = createdBulkDate;
122         this.action = action;
123         this.retryEnabled = retryEnabled;
124     }
125
126     @Column(name = "JOB_ID", columnDefinition = "CHAR(36)")
127     @Type(type="org.hibernate.type.UUIDCharType")
128     public UUID getJobId() {
129         return jobId;
130     }
131
132     @Column(name = "TEMPLATE_ID", columnDefinition = "CHAR(36)")
133     @Type(type="org.hibernate.type.UUIDCharType")
134     public UUID getTemplateId() {
135         return templateId;
136     }
137
138     @Column(name="USER_ID")
139     public String getUserId() {
140         return userId;
141     }
142
143     @Column(name = "MSO_REQUEST_ID", columnDefinition = "CHAR(36)")
144     @Type(type="org.hibernate.type.UUIDCharType")
145     public UUID getMsoRequestId() {
146         return msoRequestId;
147     }
148
149     @Column(name="IS_A_LA_CARTE")
150     @JsonProperty("aLaCarte")
151     public boolean isALaCarte() {
152         return aLaCarte;
153     }
154
155     @Column(name="JOB_STATUS")
156     @Enumerated(EnumType.STRING)
157     public Job.JobStatus getJobStatus() {
158         return jobStatus;
159     }
160
161     @Column(name="STATUS_MODIFIED_DATE")
162     public Date getStatusModifiedDate() {
163         return statusModifiedDate;
164     }
165
166     @Column(name="IS_HIDDEN")
167     public boolean isHidden() {
168         return hidden;
169     }
170
171     @Column(name="IS_PAUSE")
172     public boolean isPause() {
173         return pause;
174     }
175
176     @Column(name="IS_RETRY_ENABLED")
177     @JsonProperty("isRetryEnabled")
178     public boolean isRetryEnabled() {
179         return retryEnabled;
180     }
181
182     @Column(name="OWNING_ENTITY_ID")
183     public String getOwningEntityId() {
184         return owningEntityId;
185     }
186
187     @Column(name="OWNING_ENTITY_NAME")
188     public String getOwningEntityName() {
189         return owningEntityName;
190     }
191
192     @Column(name="PROJECT")
193     public String getProject() {
194         return project;
195     }
196
197     @Column(name="AIC_ZONE_ID")
198     public String getAicZoneId() {
199         return aicZoneId;
200     }
201
202     @Column(name="AIC_ZONE_NAME")
203     public String getAicZoneName() {
204         return aicZoneName;
205     }
206
207     @Column(name="TENANT_ID")
208     public String getTenantId() {
209         return tenantId;
210     }
211
212     @Column(name="TENANT_NAME")
213     public String getTenantName() {
214         return tenantName;
215     }
216
217     @Column(name="REGION_ID")
218     public String getRegionId() {
219         return regionId;
220     }
221
222     @Column(name="REGION_NAME")
223     public String getRegionName() {
224         return regionName;
225     }
226
227     @Column(name="SERVICE_TYPE")
228     public String getServiceType() {
229         return serviceType;
230     }
231
232     @Column(name="SUBSCRIBER_NAME")
233     public String getSubscriberName() {
234         return subscriberName;
235     }
236
237     @Column(name="SUBSCRIBER_ID")
238     public String getSubscriberId() {
239         return subscriberId;
240     }
241
242     @Column(name="SERVICE_INSTANCE_ID")
243     public String getServiceInstanceId() {
244         return serviceInstanceId;
245     }
246
247     @Column(name="SERVICE_INSTANCE_NAME")
248     public String getServiceInstanceName() {
249         return serviceInstanceName;
250     }
251
252     @Column(name="SERVICE_MODEL_ID")
253     public String getServiceModelId() {
254         return serviceModelId;
255     }
256
257     @Column(name="SERVICE_MODEL_NAME")
258     public String getServiceModelName() {
259         return serviceModelName;
260     }
261
262     @Column(name="SERVICE_MODEL_VERSION")
263     public String getServiceModelVersion() {
264         return serviceModelVersion;
265     }
266
267     @Column(name="CREATED_BULK_DATE")
268     public Date getCreatedBulkDate() {
269         return createdBulkDate;
270     }
271
272     @Column(name="DELETED_AT")
273     public Date getDeletedAt() {
274         return deletedAt;
275     }
276
277     @Column(name="ACTION")
278     @Enumerated(EnumType.STRING)
279     public ServiceAction getAction() {
280         return action;
281     }
282
283     @Id
284     @GeneratedValue(strategy = GenerationType.IDENTITY)
285     @Override
286     @Column(name = "ID", columnDefinition = "INT(11)")
287     public Long getId() {
288         return this.id;
289     }
290
291     @Override
292     @Column(name = "CREATED_DATE")
293     public Date getCreated() {
294         return super.getCreated();
295     }
296
297     @Override
298     @Column(name = "MODIFIED_DATE")
299     public Date getModified() {
300         return super.getModified();
301     }
302
303     @Override
304     @Transient
305     public Long getCreatedId() {
306         return super.getCreatedId();
307     }
308
309     @Override
310     @Transient
311     public Long getModifiedId() {
312         return super.getModifiedId();
313     }
314
315     @Override
316     @Transient
317     public Serializable getAuditUserId() {
318         return super.getAuditUserId();
319     }
320
321     @Override
322     @Transient
323     public Long getRowNum() {
324         return super.getRowNum();
325     }
326
327     @Override
328     @Transient
329     public Set getAuditTrail() {
330         return super.getAuditTrail();
331     }
332
333     public void setUserId(String userId) {
334         this.userId = userId;
335     }
336     public void setJobId(UUID jobId) {
337         this.jobId = jobId;
338     }
339
340     public void setTemplateId(UUID templateId) {
341         this.templateId = templateId;
342     }
343
344     public void setMsoRequestId(UUID requestId) {
345         this.msoRequestId = requestId;
346     }
347
348     public void setALaCarte(boolean aLaCarte) {
349         this.aLaCarte = aLaCarte;
350     }
351
352     public void setJobStatus(Job.JobStatus jobStatus) {
353         this.jobStatus = jobStatus;
354     }
355
356     public void setStatusModifiedDate(Date statusModifiedDate) {
357         this.statusModifiedDate = statusModifiedDate;
358     }
359
360     public void setHidden(boolean isHidden) {
361         hidden = isHidden;
362     }
363
364     public void setPause(boolean pause) {
365         this.pause = pause;
366     }
367
368     public void setRetryEnabled(boolean retryEnabled) {
369         this.retryEnabled = retryEnabled;
370     }
371
372     public void setOwningEntityId(String owningEntityId) {
373         this.owningEntityId = owningEntityId;
374     }
375
376     public void setOwningEntityName(String owningEntityName) {
377         this.owningEntityName = owningEntityName;
378     }
379
380     public void setProject(String project) {
381         this.project = project;
382     }
383
384     public void setAicZoneId(String aicZoneId) {
385         this.aicZoneId = aicZoneId;
386     }
387
388     public void setAicZoneName(String aicZoneName) {
389         this.aicZoneName = aicZoneName;
390     }
391
392     public void setTenantId(String tenantId) {
393         this.tenantId = tenantId;
394     }
395
396     public void setTenantName(String tenantName) {
397         this.tenantName = tenantName;
398     }
399
400     public void setRegionId(String regionId) {
401         this.regionId = regionId;
402     }
403
404     public void setRegionName(String regionName) {
405         this.regionName = regionName;
406     }
407
408     public void setServiceType(String serviceType) {
409         this.serviceType = serviceType;
410     }
411
412     public void setSubscriberName(String subscriberName) {
413         this.subscriberName = subscriberName;
414     }
415
416     public void setSubscriberId(String subscriberId) {
417         this.subscriberId = subscriberId;
418     }
419
420     public void setServiceInstanceId(String serviceInstanceId) {
421         this.serviceInstanceId = serviceInstanceId;
422     }
423
424     public void setServiceInstanceName(String serviceInstanceName) {
425         this.serviceInstanceName = serviceInstanceName;
426     }
427
428     public void setServiceModelId(String serviceModelId) {
429         this.serviceModelId = serviceModelId;
430     }
431
432     public void setServiceModelName(String serviceModelName) {
433         this.serviceModelName = serviceModelName;
434     }
435
436     public void setServiceModelVersion(String serviceModelVersion) {
437         this.serviceModelVersion = serviceModelVersion;
438     }
439
440     public void setCreatedBulkDate(Date createdBulkDate) {
441         this.createdBulkDate = createdBulkDate;
442     }
443
444     public void setDeletedAt(Date deletedAt) {
445         this.deletedAt = deletedAt;
446     }
447
448     public void setAction(ServiceAction action) { this.action = action; }
449
450     @Override
451     public boolean equals(Object o) {
452         if (this == o) return true;
453         if (!(o instanceof ServiceInfo)) return false;
454         ServiceInfo that = (ServiceInfo) o;
455         return aLaCarte == that.aLaCarte &&
456                 isHidden() == that.isHidden() &&
457                 isPause() == that.isPause() &&
458                 isRetryEnabled() == that.isRetryEnabled() &&
459                 Objects.equals(getJobId(), that.getJobId()) &&
460                 Objects.equals(getTemplateId(), that.getTemplateId()) &&
461                 Objects.equals(getUserId(), that.getUserId()) &&
462                 Objects.equals(getMsoRequestId(), that.getMsoRequestId()) &&
463                 getJobStatus() == that.getJobStatus() &&
464                 Objects.equals(getStatusModifiedDate(), that.getStatusModifiedDate()) &&
465                 Objects.equals(getDeletedAt(), that.getDeletedAt()) &&
466                 Objects.equals(getOwningEntityId(), that.getOwningEntityId()) &&
467                 Objects.equals(getOwningEntityName(), that.getOwningEntityName()) &&
468                 Objects.equals(getProject(), that.getProject()) &&
469                 Objects.equals(getAicZoneId(), that.getAicZoneId()) &&
470                 Objects.equals(getAicZoneName(), that.getAicZoneName()) &&
471                 Objects.equals(getTenantId(), that.getTenantId()) &&
472                 Objects.equals(getTenantName(), that.getTenantName()) &&
473                 Objects.equals(getRegionId(), that.getRegionId()) &&
474                 Objects.equals(getRegionName(), that.getRegionName()) &&
475                 Objects.equals(getServiceType(), that.getServiceType()) &&
476                 Objects.equals(getSubscriberName(), that.getSubscriberName()) &&
477                 Objects.equals(getSubscriberId(), that.getSubscriberId()) &&
478                 Objects.equals(getServiceInstanceId(), that.getServiceInstanceId()) &&
479                 Objects.equals(getServiceInstanceName(), that.getServiceInstanceName()) &&
480                 Objects.equals(getServiceModelId(), that.getServiceModelId()) &&
481                 Objects.equals(getServiceModelName(), that.getServiceModelName()) &&
482                 Objects.equals(getServiceModelVersion(), that.getServiceModelVersion()) &&
483                 Objects.equals(getCreatedBulkDate(), that.getCreatedBulkDate()) &&
484                 getAction() == that.getAction();
485     }
486
487     @Override
488     public int hashCode() {
489         return Objects.hash(getJobId(), getTemplateId(), getUserId(), getMsoRequestId(), aLaCarte, getJobStatus(),
490                 getStatusModifiedDate(), isHidden(), isPause(), isRetryEnabled(), getDeletedAt(), getOwningEntityId(), getOwningEntityName(),
491                 getProject(), getAicZoneId(), getAicZoneName(), getTenantId(), getTenantName(), getRegionId(), getRegionName(), getServiceType(),
492                 getSubscriberName(), getSubscriberId(), getServiceInstanceId(), getServiceInstanceName(), getServiceModelId(), getServiceModelName(),
493                 getServiceModelVersion(), getCreatedBulkDate(), getAction());
494     }
495 }