1 package net.sumaris.core.model.referential.location;
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.referential.IItemReferentialEntity;
28 import net.sumaris.core.model.referential.Status;
29 import net.sumaris.core.model.referential.ValidityStatus;
30
31 import javax.persistence.*;
32 import java.io.Serializable;
33 import java.util.Date;
34
35 @Data
36 @FieldNameConstants
37 @Entity
38 @Table(name = "location")
39 @Cacheable
40 public class Location implements IItemReferentialEntity, Serializable {
41
42 @Id
43 @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "LOCATION_SEQ")
44 @SequenceGenerator(name = "LOCATION_SEQ", sequenceName="LOCATION_SEQ")
45 private Integer id;
46
47 @ManyToOne(fetch = FetchType.LAZY)
48 @JoinColumn(name = "status_fk", nullable = false)
49 private Status status;
50
51 @Column(name = "creation_date", nullable = false)
52 @Temporal(TemporalType.TIMESTAMP)
53 private Date creationDate;
54
55 @Column(name = "update_date")
56 @Temporal(TemporalType.TIMESTAMP)
57 private Date updateDate;
58
59 @Column(nullable = false, length = LENGTH_LABEL)
60 private String label;
61
62 @Column(nullable = false, length = LENGTH_NAME)
63 private String name;
64
65 private String description;
66
67 private Double bathymetry;
68
69 @Column(name = "ut_format")
70 private Short utFormat;
71
72 @Column(name = "daylight_saving_time")
73 private Boolean daylightSavingTime;
74
75 @Column(length = LENGTH_COMMENTS)
76 private String comments;
77
78 @ManyToOne(fetch = FetchType.LAZY, targetEntity = LocationLevel.class)
79 @JoinColumn(name = "location_level_fk")
80 private LocationLevel locationLevel;
81
82 @ManyToOne(fetch = FetchType.LAZY)
83 @JoinColumn(name = "validity_status_fk", nullable = false)
84 private ValidityStatus validityStatus;
85 }