1 package net.sumaris.core.model.data;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 import lombok.Data;
26 import lombok.experimental.FieldNameConstants;
27 import net.sumaris.core.model.administration.user.Department;
28 import net.sumaris.core.model.referential.QualityFlag;
29
30 import javax.persistence.*;
31 import java.util.Date;
32
33 @Data
34 @FieldNameConstants
35 @Entity(name = "vessel_position")
36 public class VesselPosition implements IDataEntity<Integer> {
37
38 @Id
39 @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "VESSEL_POSITION_SEQ")
40 @SequenceGenerator(name = "VESSEL_POSITION_SEQ", sequenceName="VESSEL_POSITION_SEQ")
41 private Integer id;
42
43 @Column(name = "update_date")
44 @Temporal(TemporalType.TIMESTAMP)
45 private Date updateDate;
46
47 @ManyToOne(fetch = FetchType.LAZY)
48 @JoinColumn(name = "recorder_department_fk", nullable = false)
49 private Department recorderDepartment;
50
51 @Column(name="control_date")
52 @Temporal(TemporalType.TIMESTAMP)
53 private Date controlDate;
54
55 @Column(name="validation_date")
56 @Temporal(TemporalType.TIMESTAMP)
57 private Date validationDate;
58
59 @Column(name="qualification_date")
60 @Temporal(TemporalType.TIMESTAMP)
61 private Date qualificationDate;
62
63 @Column(name="qualification_comments", length = LENGTH_COMMENTS)
64 private String qualificationComments;
65
66 @ManyToOne(fetch = FetchType.LAZY, targetEntity = QualityFlag.class)
67 @JoinColumn(name = "quality_flag_fk", nullable = false)
68 private QualityFlag qualityFlag;
69
70 @Column(name = "date_time", nullable = false)
71 private Date dateTime;
72
73 @Column(nullable = false)
74 private Double latitude;
75
76 @Column(nullable = false)
77 private Double longitude;
78
79
80
81 @ManyToOne(fetch = FetchType.LAZY)
82 @JoinColumn(name = "operation_fk")
83
84 private Operation operation;
85
86 }