[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
|
---|
[d427a07] | 16 | @Table(name = "pet")
|
---|
| 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 |
|
---|
| 24 | @Column(name = "url_pet_image", length = 200)
|
---|
| 25 | private String imageUrl;
|
---|
| 26 |
|
---|
| 27 | @Column(name = "age_group", nullable = false)
|
---|
| 28 | private AgeGroup ageGroup;
|
---|
| 29 |
|
---|
| 30 | @Column(name = "size_pet", nullable = false)
|
---|
| 31 | private Size size;
|
---|
| 32 |
|
---|
| 33 | @Column(name = "breed", length = 100)
|
---|
| 34 | private String breed;
|
---|
| 35 |
|
---|
| 36 | @Column(name = "name_pet", length = 20)
|
---|
| 37 | private String name;
|
---|
| 38 |
|
---|
| 39 | @Column(name = "species", nullable = false)
|
---|
| 40 | private Species species;
|
---|
| 41 |
|
---|
| 42 | @Column(name = "gender", nullable = false)
|
---|
| 43 | private Gender gender;
|
---|
| 44 |
|
---|
| 45 | @Column(name = "can_be_fostered", nullable = false)
|
---|
[fdd7961] | 46 | private Boolean canBeFostered;
|
---|
[d427a07] | 47 |
|
---|
[fdd7961] | 48 | @ManyToOne
|
---|
| 49 | @JoinColumn(name = "id_adoption")
|
---|
| 50 | private Adoption adoption;
|
---|
[d427a07] | 51 |
|
---|
[fdd7961] | 52 | @ManyToOne
|
---|
| 53 | @JoinColumn(name = "id_shelter")
|
---|
| 54 | private Shelter shelter;
|
---|
[d427a07] | 55 |
|
---|
[c03e53b] | 56 | @ManyToMany
|
---|
| 57 | @JoinTable(name = "pet_belongs_to_category",
|
---|
| 58 | joinColumns = @JoinColumn(name = "id_pet"),
|
---|
| 59 | inverseJoinColumns = @JoinColumn(name = "id_category"))
|
---|
| 60 | List<Category> categories;
|
---|
| 61 |
|
---|
| 62 | @ManyToMany
|
---|
| 63 | @JoinTable(name = "pet_needs_intervention_in_vet_clinic",
|
---|
| 64 | joinColumns = @JoinColumn(name = "id_pet"),
|
---|
| 65 | inverseJoinColumns = @JoinColumn(name = "id_vet_clinic"))
|
---|
| 66 | List<VetClinic> vetClinicsTreatedIn;
|
---|
| 67 |
|
---|
| 68 | @ManyToMany
|
---|
| 69 | @JoinTable(name = "pet_needs_therapy",
|
---|
| 70 | joinColumns = @JoinColumn(name = "id_pet"),
|
---|
| 71 | inverseJoinColumns = @JoinColumn(name = "id_therapy"))
|
---|
| 72 | List<Therapy> therapies;
|
---|
| 73 |
|
---|
| 74 | @ManyToMany
|
---|
| 75 | @JoinTable(name = "pet_preferably_eats_food",
|
---|
| 76 | joinColumns = @JoinColumn(name = "id_pet"),
|
---|
| 77 | inverseJoinColumns = @JoinColumn(name = "id_food"))
|
---|
| 78 | List<Food> preferredFoods;
|
---|
| 79 |
|
---|
[fdd7961] | 80 | public Pet(String imageUrl, AgeGroup ageGroup, Size size, String breed,
|
---|
| 81 | String name, Species species, Gender gender, Boolean canBeFostered,
|
---|
| 82 | Adoption adoption, Shelter shelter) {
|
---|
[d427a07] | 83 | this.imageUrl = imageUrl;
|
---|
| 84 | this.ageGroup = ageGroup;
|
---|
| 85 | this.size = size;
|
---|
| 86 | this.breed = breed;
|
---|
| 87 | this.name = name;
|
---|
| 88 | this.species = species;
|
---|
| 89 | this.gender = gender;
|
---|
| 90 | this.canBeFostered = canBeFostered;
|
---|
[fdd7961] | 91 | this.adoption = adoption;
|
---|
| 92 | this.shelter = shelter;
|
---|
[d427a07] | 93 | }
|
---|
| 94 | }
|
---|