1 | package finki.paw5.model.entities;
|
---|
2 |
|
---|
3 | import finki.paw5.model.enumerations.AgeGroup;
|
---|
4 | import finki.paw5.model.enumerations.Gender;
|
---|
5 | import finki.paw5.model.enumerations.Size;
|
---|
6 | import finki.paw5.model.enumerations.Species;
|
---|
7 | import jakarta.persistence.*;
|
---|
8 | import lombok.Data;
|
---|
9 | import lombok.RequiredArgsConstructor;
|
---|
10 |
|
---|
11 | import java.util.List;
|
---|
12 |
|
---|
13 | @Data
|
---|
14 | @Entity
|
---|
15 | @RequiredArgsConstructor
|
---|
16 | @Table(name = "pet")
|
---|
17 | public 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 | }
|
---|