View Javadoc
1   /*
2    * #%L
3    * SUMARiS
4    * %%
5    * Copyright (C) 2019 SUMARiS Consortium
6    * %%
7    * This program is free software: you can redistribute it and/or modify
8    * it under the terms of the GNU General Public License as
9    * published by the Free Software Foundation, either version 3 of the
10   * License, or (at your option) any later version.
11   *
12   * This program is distributed in the hope that it will be useful,
13   * but WITHOUT ANY WARRANTY; without even the implied warranty of
14   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15   * GNU General Public License for more details.
16   *
17   * You should have received a copy of the GNU General Public
18   * License along with this program.  If not, see
19   * <http://www.gnu.org/licenses/gpl-3.0.html>.
20   * #L%
21   */
22  
23  package net.sumaris.core.model.administration.programStrategy;
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.gear.GearClassification;
30  import net.sumaris.core.model.referential.taxon.TaxonGroupType;
31  import org.hibernate.annotations.Cascade;
32  
33  import javax.persistence.*;
34  import java.util.ArrayList;
35  import java.util.Date;
36  import java.util.List;
37  import java.util.Objects;
38  
39  @Data
40  @FieldNameConstants
41  @Entity
42  @Cacheable
43  @Table(name = "program_privilege")
44  public class ProgramPrivilege implements IItemReferentialEntity {
45  
46      @Id
47      @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "PROGRAM_PRIVILEGE_SEQ")
48      @SequenceGenerator(name = "PROGRAM_PRIVILEGE_SEQ", sequenceName="PROGRAM_PRIVILEGE_SEQ")
49      private Integer id;
50  
51      @ManyToOne(fetch = FetchType.LAZY)
52      @JoinColumn(name = "status_fk", nullable = false)
53      private Status status;
54  
55      @Column(name = "creation_date", nullable = false)
56      @Temporal(TemporalType.TIMESTAMP)
57      private Date creationDate;
58  
59      @Column(name = "update_date")
60      @Temporal(TemporalType.TIMESTAMP)
61      private Date updateDate;
62  
63      @Column(nullable = false, length = IItemReferentialEntity.LENGTH_LABEL)
64      private String label;
65  
66      @Column(nullable = false, length = IItemReferentialEntity.LENGTH_NAME)
67      private String name;
68  
69      private String description;
70  
71      @Column(length = IItemReferentialEntity.LENGTH_COMMENTS)
72      private String comments;
73  }