| equals(Object) |  | 0% |  | 0% | 124 | 124 | 1 | 1 | 1 | 1 |
| hashCode() |  | 0% |  | 0% | 41 | 41 | 1 | 1 | 1 | 1 |
| Product(Long, String, String, BigDecimal, String, Integer, String, String, String, String, String, String, String, Float, String, BigDecimal, BigDecimal, BigDecimal, BigDecimal, LocalDateTime, LocalDateTime, BigDecimal, Integer, Integer, Integer, Integer, Integer, Long, Boolean, Boolean, Boolean, String, String, String, String, Integer, Integer, LocalDateTime, LocalDateTime, List) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| toString() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getSearchableText() |  | 0% |  | 0% | 8 | 8 | 9 | 9 | 1 | 1 |
| onCreate() |  | 0% |  | 0% | 10 | 10 | 13 | 13 | 1 | 1 |
| getValidationErrors() |  | 0% |  | 0% | 9 | 9 | 14 | 14 | 1 | 1 |
| addRating(BigDecimal) |  | 0% |  | 0% | 4 | 4 | 8 | 8 | 1 | 1 |
| isValid() |  | 0% |  | 0% | 9 | 9 | 4 | 4 | 1 | 1 |
| getCalculatedDiscountPercentage() |  | 0% |  | 0% | 4 | 4 | 9 | 9 | 1 | 1 |
| isSaleActive() |  | 0% |  | 0% | 6 | 6 | 8 | 8 | 1 | 1 |
| getPrimaryImageUrl() |  | 0% |  | 0% | 5 | 5 | 6 | 6 | 1 | 1 |
| getShortDescription() |  | 0% |  | 0% | 4 | 4 | 6 | 6 | 1 | 1 |
| getSavings() |  | 0% |  | 0% | 4 | 4 | 5 | 5 | 1 | 1 |
| decreaseStock(int) |  | 0% |  | 0% | 3 | 3 | 4 | 4 | 1 | 1 |
| Product(String, String, BigDecimal, String, Integer) |  | 0% | | n/a | 1 | 1 | 7 | 7 | 1 | 1 |
| isLowStock() |  | 0% |  | 0% | 4 | 4 | 2 | 2 | 1 | 1 |
| needsReorder() |  | 0% |  | 0% | 4 | 4 | 2 | 2 | 1 | 1 |
| increaseStock(int) |  | 0% | | 0% | 2 | 2 | 4 | 4 | 1 | 1 |
| incrementViewCount() |  | 0% | | 0% | 2 | 2 | 2 | 2 | 1 | 1 |
| getEffectiveMetaTitle() |  | 0% |  | 0% | 3 | 3 | 1 | 1 | 1 | 1 |
| getEffectiveMetaDescription() |  | 0% |  | 0% | 3 | 3 | 3 | 3 | 1 | 1 |
| isAvailableForPurchase() |  | 0% |  | 0% | 3 | 3 | 1 | 1 | 1 | 1 |
| getFormattedPrice() |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| isInStock() |  | 0% |  | 0% | 3 | 3 | 1 | 1 | 1 | 1 |
| getOriginalDisplayPrice() |  | 0% | | 0% | 2 | 2 | 1 | 1 | 1 | 1 |
| Product(String, BigDecimal, String) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| getEffectivePrice() |   | 57% |  | 25% | 2 | 3 | 1 | 3 | 0 | 1 |
| isVisible() | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| onUpdate() | | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| setStock(Integer) | | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| setInventory(Integer) | | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| setQuantity(Integer) | | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| setActive(Boolean) | | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| setFeatured(Boolean) | | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| setOnSale(Boolean) | | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| builder() | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| setDescription(String) | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| setCategory(String) | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| setImageUrl(String) | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| setBrand(String) | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| setModel(String) | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| setColor(String) | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| setSku(String) | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| setBarcode(String) | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| setDimensions(String) | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| setWeight(Float) | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| setOriginCountry(String) | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| setCostPrice(BigDecimal) | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| setOriginalPrice(BigDecimal) | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| setSalePrice(BigDecimal) | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| setDiscountPercentage(BigDecimal) | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| setSaleStartDate(LocalDateTime) | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| setSaleEndDate(LocalDateTime) | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| setRating(BigDecimal) | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| setReviewCount(Integer) | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| setViewCount(Integer) | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| setMinimumStockLevel(Integer) | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| setMaximumStockLevel(Integer) | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| setReorderPoint(Integer) | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| setSupplierId(Long) | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| setIsActive(Boolean) | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| setIsFeatured(Boolean) | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| setIsOnSale(Boolean) | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| setMetaTitle(String) | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| setMetaDescription(String) | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| setTags(String) | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| setSaleDescription(String) | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| setWarrantyMonths(Integer) | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| setEstimatedDeliveryDays(Integer) | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| setCreatedAt(LocalDateTime) | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| setUpdatedAt(LocalDateTime) | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| setProductImages(List) | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getStock() | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getInventory() | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getQuantity() | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| isActive() | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getActive() | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| isFeatured() | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getFeatured() | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| isOnSale() | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getOnSale() | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getDescription() | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getPrice() | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getCategory() | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getImageUrl() | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getBrand() | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getModel() | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getColor() | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getSku() | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getBarcode() | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getDimensions() | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getWeight() | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getOriginCountry() | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getCostPrice() | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getOriginalPrice() | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getSalePrice() | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getDiscountPercentage() | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getSaleStartDate() | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getSaleEndDate() | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getRating() | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getReviewCount() | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getViewCount() | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getMinimumStockLevel() | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getMaximumStockLevel() | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getReorderPoint() | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getSupplierId() | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getIsActive() | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getIsFeatured() | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getIsOnSale() | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getMetaTitle() | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getMetaDescription() | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getTags() | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getSaleDescription() | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getWarrantyMonths() | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getEstimatedDeliveryDays() | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getCreatedAt() | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getUpdatedAt() | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getProductImages() | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| canEqual(Object) | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| Product() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| $default$productImages() | | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| setId(Long) | | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| setName(String) | | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| setPrice(BigDecimal) | | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| setStockQuantity(Integer) | | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getCurrentPrice() | | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| $default$stockQuantity() | | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| $default$reviewCount() | | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| $default$viewCount() | | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| $default$isActive() | | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| $default$isFeatured() | | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| $default$isOnSale() | | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| getId() | | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getName() | | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getStockQuantity() | | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| $default$rating() | | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |