[3d3e59d] | 1 | package finki.paw5.model.entities;
|
---|
[d427a07] | 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;
|
---|
[038c9f7] | 7 | import jakarta.persistence.*;
|
---|
[d427a07] | 8 | import lombok.Data;
|
---|
[fdd7961] | 9 | import lombok.RequiredArgsConstructor;
|
---|
[d427a07] | 10 |
|
---|
[c03e53b] | 11 | import java.util.List;
|
---|
| 12 |
|
---|
[d427a07] | 13 | @Data
|
---|
| 14 | @Entity
|
---|
[fdd7961] | 15 | @RequiredArgsConstructor
|
---|
[c049fd6] | 16 | @Table(name = "pet", schema = "project")
|
---|
[d427a07] | 17 | public class Pet {
|
---|
| 18 |
|
---|
| 19 | @Id
|
---|
[038c9f7] | 20 | @GeneratedValue(strategy = GenerationType.IDENTITY)
|
---|
[2fdea25] | 21 | @Column(name = "id_pet")
|
---|
[ada7108] | 22 | private Integer id;
|
---|
[d427a07] | 23 |
|
---|
[5dea0b7] | 24 | @OneToOne
|
---|
| 25 | @JoinColumn(name = "id_pet", nullable = false)
|
---|
| 26 | private PersonalProfile personalProfile;
|
---|
| 27 |
|
---|
[d427a07] | 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)
|
---|
[fdd7961] | 50 | private Boolean canBeFostered;
|
---|
[d427a07] | 51 |
|
---|
[fdd7961] | 52 | @ManyToOne
|
---|
| 53 | @JoinColumn(name = "id_adoption")
|
---|
| 54 | private Adoption adoption;
|
---|
[d427a07] | 55 |
|
---|
[fdd7961] | 56 | @ManyToOne
|
---|
| 57 | @JoinColumn(name = "id_shelter")
|
---|
| 58 | private Shelter shelter;
|
---|
[d427a07] | 59 |
|
---|
[c03e53b] | 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 |
|
---|
[fdd7961] | 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) {
|
---|
[d427a07] | 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;
|
---|
[fdd7961] | 95 | this.adoption = adoption;
|
---|
| 96 | this.shelter = shelter;
|
---|
[d427a07] | 97 | }
|
---|
| 98 | }
|
---|