source: Prototype Application/Paw5/src/main/java/finki/paw5/model/entities/Pet.java@ 5dea0b7

main
Last change on this file since 5dea0b7 was 5dea0b7, checked in by SazdovaEkaterina <sazdovaekaterina@…>, 16 months ago

1-1 rel

  • Property mode set to 100644
File size: 2.8 KB
Line 
1package finki.paw5.model.entities;
2
3import finki.paw5.model.enumerations.AgeGroup;
4import finki.paw5.model.enumerations.Gender;
5import finki.paw5.model.enumerations.Size;
6import finki.paw5.model.enumerations.Species;
7import jakarta.persistence.*;
8import lombok.Data;
9import lombok.RequiredArgsConstructor;
10
11import java.util.List;
12
13@Data
14@Entity
15@RequiredArgsConstructor
16@Table(name = "pet")
17public class Pet {
18
19 @Id
20 @GeneratedValue(strategy = GenerationType.IDENTITY)
21 @Column(name = "id_pet")
22 private Integer id;
23
24 @OneToOne
25 @JoinColumn(name = "id_pet", nullable = false)
26 private PersonalProfile personalProfile;
27
28 @Column(name = "url_pet_image", length = 200)
29 private String imageUrl;
30
31 @Column(name = "age_group", nullable = false)
32 private AgeGroup ageGroup;
33
34 @Column(name = "size_pet", nullable = false)
35 private Size size;
36
37 @Column(name = "breed", length = 100)
38 private String breed;
39
40 @Column(name = "name_pet", length = 20)
41 private String name;
42
43 @Column(name = "species", nullable = false)
44 private Species species;
45
46 @Column(name = "gender", nullable = false)
47 private Gender gender;
48
49 @Column(name = "can_be_fostered", nullable = false)
50 private Boolean canBeFostered;
51
52 @ManyToOne
53 @JoinColumn(name = "id_adoption")
54 private Adoption adoption;
55
56 @ManyToOne
57 @JoinColumn(name = "id_shelter")
58 private Shelter shelter;
59
60 @ManyToMany
61 @JoinTable(name = "pet_belongs_to_category",
62 joinColumns = @JoinColumn(name = "id_pet"),
63 inverseJoinColumns = @JoinColumn(name = "id_category"))
64 List<Category> categories;
65
66 @ManyToMany
67 @JoinTable(name = "pet_needs_intervention_in_vet_clinic",
68 joinColumns = @JoinColumn(name = "id_pet"),
69 inverseJoinColumns = @JoinColumn(name = "id_vet_clinic"))
70 List<VetClinic> vetClinicsTreatedIn;
71
72 @ManyToMany
73 @JoinTable(name = "pet_needs_therapy",
74 joinColumns = @JoinColumn(name = "id_pet"),
75 inverseJoinColumns = @JoinColumn(name = "id_therapy"))
76 List<Therapy> therapies;
77
78 @ManyToMany
79 @JoinTable(name = "pet_preferably_eats_food",
80 joinColumns = @JoinColumn(name = "id_pet"),
81 inverseJoinColumns = @JoinColumn(name = "id_food"))
82 List<Food> preferredFoods;
83
84 public Pet(String imageUrl, AgeGroup ageGroup, Size size, String breed,
85 String name, Species species, Gender gender, Boolean canBeFostered,
86 Adoption adoption, Shelter shelter) {
87 this.imageUrl = imageUrl;
88 this.ageGroup = ageGroup;
89 this.size = size;
90 this.breed = breed;
91 this.name = name;
92 this.species = species;
93 this.gender = gender;
94 this.canBeFostered = canBeFostered;
95 this.adoption = adoption;
96 this.shelter = shelter;
97 }
98}
Note: See TracBrowser for help on using the repository browser.