Category.java
package ntnu.idatt2016.v233.SmartMat.entity.product;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import jakarta.persistence.*;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
/**
* Category is an entity class representing a product category
*
* @author Pedro, Birk
* @version 1.1
*/
@NoArgsConstructor
@AllArgsConstructor
@Builder
@Entity(name = "category")
@Data
public class Category {
@Id
@Column(name = "category_name")
String categoryName;
@Column(name = "category_description")
String description;
@OneToMany(mappedBy = "category")
@JsonIgnore
private List<Product> products;
/**
* adds a product to the category
* @param product adds a product to the list of products in this category
*/
public void addProduct(Product product) {
if (products == null)
products = List.of(product);
else if(!products.contains(product))
products.add(product);
}
}