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

main
Last change on this file was c049fd6, checked in by SazdovaEkaterina <sazdovaekaterina@…>, 13 months ago

specify project schema in the backend

  • Property mode set to 100644
File size: 2.8 KB
RevLine 
[3d3e59d]1package finki.paw5.model.entities;
[d427a07]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;
[038c9f7]7import jakarta.persistence.*;
[d427a07]8import lombok.Data;
[fdd7961]9import lombok.RequiredArgsConstructor;
[d427a07]10
[c03e53b]11import java.util.List;
12
[d427a07]13@Data
14@Entity
[fdd7961]15@RequiredArgsConstructor
[c049fd6]16@Table(name = "pet", schema = "project")
[d427a07]17public 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}
Note: See TracBrowser for help on using the repository browser.