3b49eedca6e6c809cea758797ca8cef58d766a4d
[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     }
54
55     public void setUserId(String userId) {
56         this.userId = userId;
57     }
58
59     private UUID jobId;
60     private UUID templateId;
61     private String userId;
62     private UUID msoRequestId;
63     private boolean aLaCarte;
64     private Job.JobStatus jobStatus;
65     private Date statusModifiedDate;
66     private boolean hidden;
67     private boolean pause;
68     private Date deletedAt;
69     private String owningEntityId;
70     private String owningEntityName;
71     private String project;
72     private String aicZoneId;
73     private String aicZoneName;
74     private String tenantId;
75     private String tenantName;
76     private String regionId;
77     private String regionName;
78     private String serviceType;
79     private String subscriberName;
80     private String subscriberId;
81     private String serviceInstanceId;
82     private String serviceInstanceName;
83     private String serviceModelId;
84     private String serviceModelName;
85     private String serviceModelVersion;
86     private Date createdBulkDate;
87     private ServiceAction action;
88
89     public ServiceInfo(){
90
91     }
92
93     public ServiceInfo(String userId, Boolean aLaCarte, Job.JobStatus jobStatus, boolean pause, UUID jobId, UUID templateId, String owningEntityId, String owningEntityName, String project, String aicZoneId, String aicZoneName, String tenantId, String tenantName, String regionId, String regionName, String serviceType, String subscriberName, String subscriberId, String serviceInstanceId, String serviceInstanceName, String serviceModelId, String serviceModelName, String serviceModelVersion, Date createdBulkDate, ServiceAction action) {
94         this.userId = userId;
95         this.aLaCarte = aLaCarte;
96         this.jobStatus = jobStatus;
97         this.jobId = jobId;
98         this.templateId = templateId;
99         this.pause = pause;
100         this.owningEntityId = owningEntityId;
101         this.owningEntityName = owningEntityName;
102         this.project = project;
103         this.aicZoneId = aicZoneId;
104         this.aicZoneName = aicZoneName;
105         this.tenantId = tenantId;
106         this.tenantName = tenantName;
107         this.regionId = regionId;
108         this.regionName = regionName;
109         this.serviceType = serviceType;
110         this.subscriberName = subscriberName;
111         this.subscriberId = subscriberId;
112         this.serviceInstanceId = serviceInstanceId;
113         this.serviceInstanceName = serviceInstanceName;
114         this.serviceModelId = serviceModelId;
115         this.serviceModelName = serviceModelName;
116         this.serviceModelVersion = serviceModelVersion;
117         this.createdBulkDate = createdBulkDate;
118         this.action = action;
119     }
120
121     @Column(name = "JOB_ID", columnDefinition = "CHAR(36)")
122     @Type(type="org.hibernate.type.UUIDCharType")
123     public UUID getJobId() {
124         return jobId;
125     }
126
127     @Column(name = "TEMPLATE_ID", columnDefinition = "CHAR(36)")
128     @Type(type="org.hibernate.type.UUIDCharType")
129     public UUID getTemplateId() {
130         return templateId;
131     }
132
133     @Column(name="USER_ID")
134     public String getUserId() {
135         return userId;
136     }
137
138     @Column(name = "MSO_REQUEST_ID", columnDefinition = "CHAR(36)")
139     @Type(type="org.hibernate.type.UUIDCharType")
140     public UUID getMsoRequestId() {
141         return msoRequestId;
142     }
143
144     @Column(name="IS_A_LA_CARTE")
145     @JsonProperty("aLaCarte")
146     public boolean isALaCarte() {
147         return aLaCarte;
148     }
149
150     @Column(name="JOB_STATUS")
151     @Enumerated(EnumType.STRING)
152     public Job.JobStatus getJobStatus() {
153         return jobStatus;
154     }
155
156     @Column(name="STATUS_MODIFIED_DATE")
157     public Date getStatusModifiedDate() {
158         return statusModifiedDate;
159     }
160
161     @Column(name="IS_HIDDEN")
162     public boolean isHidden() {
163         return hidden;
164     }
165
166     @Column(name="IS_PAUSE")
167     public boolean isPause() {
168         return pause;
169     }
170
171     @Column(name="OWNING_ENTITY_ID")
172     public String getOwningEntityId() {
173         return owningEntityId;
174     }
175
176     @Column(name="OWNING_ENTITY_NAME")
177     public String getOwningEntityName() {
178         return owningEntityName;
179     }
180
181     @Column(name="PROJECT")
182     public String getProject() {
183         return project;
184     }
185
186     @Column(name="AIC_ZONE_ID")
187     public String getAicZoneId() {
188         return aicZoneId;
189     }
190
191     @Column(name="AIC_ZONE_NAME")
192     public String getAicZoneName() {
193         return aicZoneName;
194     }
195
196     @Column(name="TENANT_ID")
197     public String getTenantId() {
198         return tenantId;
199     }
200
201     @Column(name="TENANT_NAME")
202     public String getTenantName() {
203         return tenantName;
204     }
205
206     @Column(name="REGION_ID")
207     public String getRegionId() {
208         return regionId;
209     }
210
211     @Column(name="REGION_NAME")
212     public String getRegionName() {
213         return regionName;
214     }
215
216     @Column(name="SERVICE_TYPE")
217     public String getServiceType() {
218         return serviceType;
219     }
220
221     @Column(name="SUBSCRIBER_NAME")
222     public String getSubscriberName() {
223         return subscriberName;
224     }
225
226     @Column(name="SUBSCRIBER_ID")
227     public String getSubscriberId() {
228         return subscriberId;
229     }
230
231     @Column(name="SERVICE_INSTANCE_ID")
232     public String getServiceInstanceId() {
233         return serviceInstanceId;
234     }
235
236     @Column(name="SERVICE_INSTANCE_NAME")
237     public String getServiceInstanceName() {
238         return serviceInstanceName;
239     }
240
241     @Column(name="SERVICE_MODEL_ID")
242     public String getServiceModelId() {
243         return serviceModelId;
244     }
245
246     @Column(name="SERVICE_MODEL_NAME")
247     public String getServiceModelName() {
248         return serviceModelName;
249     }
250
251     @Column(name="SERVICE_MODEL_VERSION")
252     public String getServiceModelVersion() {
253         return serviceModelVersion;
254     }
255
256     @Column(name="CREATED_BULK_DATE")
257     public Date getCreatedBulkDate() {
258         return createdBulkDate;
259     }
260
261     @Column(name="DELETED_AT")
262     public Date getDeletedAt() {
263          return deletedAt;
264      }
265
266     @Column(name="ACTION")
267     @Enumerated(EnumType.STRING)
268     public ServiceAction getAction() {
269         return action;
270     }
271
272     @Id
273     @GeneratedValue(strategy = GenerationType.IDENTITY)
274     @Override
275     @Column(name = "ID", columnDefinition = "INT(11)")
276     public Long getId() {
277         return this.id;
278     }
279
280     @Override
281     @Column(name = "CREATED_DATE")
282     public Date getCreated() {
283         return super.getCreated();
284     }
285
286     @Override
287     @Column(name = "MODIFIED_DATE")
288     public Date getModified() {
289         return super.getModified();
290     }
291
292     @Override
293     @Transient
294     public Long getCreatedId() {
295         return super.getCreatedId();
296     }
297
298     @Override
299     @Transient
300     public Long getModifiedId() {
301         return super.getModifiedId();
302     }
303
304     @Override
305     @Transient
306     public Serializable getAuditUserId() {
307         return super.getAuditUserId();
308     }
309
310     @Override
311     @Transient
312     public Long getRowNum() {
313         return super.getRowNum();
314     }
315
316     @Override
317     @Transient
318     public Set getAuditTrail() {
319         return super.getAuditTrail();
320     }
321
322     public void setJobId(UUID jobId) {
323         this.jobId = jobId;
324     }
325
326     public void setTemplateId(UUID templateId) {
327         this.templateId = templateId;
328     }
329
330     public void setMsoRequestId(UUID requestId) {
331         this.msoRequestId = requestId;
332     }
333
334     public void setALaCarte(boolean aLaCarte) {
335         this.aLaCarte = aLaCarte;
336     }
337
338     public void setJobStatus(Job.JobStatus jobStatus) {
339         this.jobStatus = jobStatus;
340     }
341
342     public void setStatusModifiedDate(Date statusModifiedDate) {
343         this.statusModifiedDate = statusModifiedDate;
344     }
345
346     public void setHidden(boolean isHidden) {
347         hidden = isHidden;
348     }
349
350     public void setPause(boolean pause) {
351         this.pause = pause;
352     }
353
354     public void setOwningEntityId(String owningEntityId) {
355         this.owningEntityId = owningEntityId;
356     }
357
358     public void setOwningEntityName(String owningEntityName) {
359         this.owningEntityName = owningEntityName;
360     }
361
362     public void setProject(String project) {
363         this.project = project;
364     }
365
366     public void setAicZoneId(String aicZoneId) {
367         this.aicZoneId = aicZoneId;
368     }
369
370     public void setAicZoneName(String aicZoneName) {
371         this.aicZoneName = aicZoneName;
372     }
373
374     public void setTenantId(String tenantId) {
375         this.tenantId = tenantId;
376     }
377
378     public void setTenantName(String tenantName) {
379         this.tenantName = tenantName;
380     }
381
382     public void setRegionId(String regionId) {
383         this.regionId = regionId;
384     }
385
386     public void setRegionName(String regionName) {
387         this.regionName = regionName;
388     }
389
390     public void setServiceType(String serviceType) {
391         this.serviceType = serviceType;
392     }
393
394     public void setSubscriberName(String subscriberName) {
395         this.subscriberName = subscriberName;
396     }
397
398     public void setSubscriberId(String subscriberId) {
399         this.subscriberId = subscriberId;
400     }
401
402     public void setServiceInstanceId(String serviceInstanceId) {
403         this.serviceInstanceId = serviceInstanceId;
404     }
405
406     public void setServiceInstanceName(String serviceInstanceName) {
407         this.serviceInstanceName = serviceInstanceName;
408     }
409
410     public void setServiceModelId(String serviceModelId) {
411         this.serviceModelId = serviceModelId;
412     }
413
414     public void setServiceModelName(String serviceModelName) {
415         this.serviceModelName = serviceModelName;
416     }
417
418     public void setServiceModelVersion(String serviceModelVersion) {
419         this.serviceModelVersion = serviceModelVersion;
420     }
421
422     public void setCreatedBulkDate(Date createdBulkDate) {
423         this.createdBulkDate = createdBulkDate;
424     }
425
426     public void setDeletedAt(Date deletedAt) {
427          this.deletedAt = deletedAt;
428      }
429
430     public void setAction(ServiceAction action) { this.action = action; }
431
432      @Override
433      public boolean equals(Object o) {
434          if (this == o) return true;
435          if (!(o instanceof ServiceInfo)) return false;
436          ServiceInfo that = (ServiceInfo) o;
437          return isHidden() == that.isHidden() &&
438                  isPause() == that.isPause() &&
439                  isALaCarte() == that.isALaCarte() &&
440                  Objects.equals(getDeletedAt(), that.getDeletedAt()) &&
441                  Objects.equals(getJobId(), that.getJobId()) &&
442                  Objects.equals(getTemplateId(), that.getTemplateId()) &&
443                  Objects.equals(getUserId(), that.getUserId()) &&
444                  Objects.equals(getMsoRequestId(), that.getMsoRequestId()) &&
445                  getJobStatus() == that.getJobStatus() &&
446                  Objects.equals(getStatusModifiedDate(), that.getStatusModifiedDate()) &&
447                  Objects.equals(getOwningEntityId(), that.getOwningEntityId()) &&
448                  Objects.equals(getOwningEntityName(), that.getOwningEntityName()) &&
449                  Objects.equals(getProject(), that.getProject()) &&
450                  Objects.equals(getAicZoneId(), that.getAicZoneId()) &&
451                  Objects.equals(getAicZoneName(), that.getAicZoneName()) &&
452                  Objects.equals(getTenantId(), that.getTenantId()) &&
453                  Objects.equals(getTenantName(), that.getTenantName()) &&
454                  Objects.equals(getRegionId(), that.getRegionId()) &&
455                  Objects.equals(getRegionName(), that.getRegionName()) &&
456                  Objects.equals(getServiceType(), that.getServiceType()) &&
457                  Objects.equals(getSubscriberName(), that.getSubscriberName()) &&
458                  Objects.equals(getSubscriberId(), that.getSubscriberId()) &&
459                  Objects.equals(getServiceInstanceId(), that.getServiceInstanceId()) &&
460                  Objects.equals(getServiceInstanceName(), that.getServiceInstanceName()) &&
461                  Objects.equals(getServiceModelId(), that.getServiceModelId()) &&
462                  Objects.equals(getServiceModelName(), that.getServiceModelName()) &&
463                  Objects.equals(getServiceModelVersion(), that.getServiceModelVersion()) &&
464                  Objects.equals(getCreatedBulkDate(), that.getCreatedBulkDate()) &&
465                  Objects.equals(getAction(), that.getAction());
466      }
467
468      @Override
469      public int hashCode() {
470
471          return Objects.hash(getJobId(), getTemplateId(), getUserId(), getMsoRequestId(), isALaCarte(), getJobStatus(), getStatusModifiedDate(),
472                  isHidden(), isPause(), getDeletedAt(), getOwningEntityId(), getOwningEntityName(), getProject(),
473                  getAicZoneId(), getAicZoneName(), getTenantId(), getTenantName(), getRegionId(),
474                  getRegionName(), getServiceType(), getSubscriberName(), getSubscriberId(), getServiceInstanceId(),
475                  getServiceInstanceName(), getServiceModelId(), getServiceModelName(),
476                  getServiceModelVersion(), getCreatedBulkDate(), getAction());
477      }
478  }