diff --git a/src/main/java/ru/ulstu/is/sbapp/repair/model/Favor.java b/src/main/java/ru/ulstu/is/sbapp/repair/model/Favor.java new file mode 100644 index 0000000..910492a --- /dev/null +++ b/src/main/java/ru/ulstu/is/sbapp/repair/model/Favor.java @@ -0,0 +1,125 @@ +package ru.ulstu.is.sbapp.repair.model; + +import com.fasterxml.jackson.annotation.JsonIgnore; + +import javax.persistence.*; +import java.util.ArrayList; +import java.util.Objects; + +@Entity +@Table(name = "favors") +public class Favor { + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + private Long id; + @Column(name = "name") + private String favorName; + @Column(name = "price") + private Integer price; + + @OneToMany(mappedBy = "favor", cascade = CascadeType.ALL, fetch = FetchType.EAGER) + private List components; + + @OneToMany(mappedBy = "favor", cascade = CascadeType.ALL, fetch = FetchType.EAGER) + @JsonIgnore + private List orders; + + + public Favor() { + + } + + public Favor(String favorName, Integer price) { + this.favorName = favorName; + this.price = price; + } + + public Long getId() { + return id; + } + + public String getFavorName() { + return favorName; + } + + public void setFavorName(String favorName) { + this.favorName = favorName; + } + + public Integer getPrice() { + return price; + } + + public void setPrice(Integer price) { + this.price = price; + } + + public List getComponents() { + return components; + } + + public void setComponents(List components) { + this.components = components; + } + + public void update(Favor favor){ + this.favorName = favor.productName; + this.price = favor.price; + this.components = favor.getComponents(); + } + + public void addComponent(FavorComponents favorComponents){ + if (components == null){ + this.components = new ArrayList<>(); + } + if (!components.contains(favorComponents)) + this.components.add(favorComponents); + } + public void removeComponent(FavorComponents favorComponents){ + if (components.contains(favorComponents)) + this.components.remove(favorComponents); + } + + public List getOrders() { + return orders; + } + + public void setOrders(List orders) { + this.orders = orders; + } + public void addOrder(OrderFavors orderFavors){ + if (orders == null){ + orders = new ArrayList<>(); + } + if (!orders.contains(orderFavors)) + this.orders.add(orderFavors); + } + public void removeOrder(OrderFavors orderFavors){ + if (orders.contains(orderFavors)) + this.orders.remove(orderFavors); + } + + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + Favor favor = (Favor) o; + return Objects.equals(id, favor.id); + } + + @Override + public int hashCode() { + return Objects.hash(id); + } + + @Override + public String toString() { + return "Product{" + + "id=" + id + + ", productName='" + favorName + '\'' + + ", price='" + price + '\'' + + '}'; + } + +}