Table of Contents

Enum ProductCategory

Namespace
arolariu.Backend.Domain.Invoices.DDD.ValueObjects.Products
Assembly
arolariu.Backend.Domain.Invoices.dll

Classifies individual line items for enrichment, allergen aggregation, nutritional analytics and budgeting segmentation.

[SuppressMessage("Naming", "CA1707:Identifiers should not contain underscores", Justification = "Domain sentinel and grouped constants use underscores for clarity.")]
public enum ProductCategory

Fields

NOT_DEFINED = 0

Sentinel; item category not yet classified.

BAKED_GOODS = 100

Baked goods (bread, pastries, cakes, confectionery).

GROCERIES = 200

General grocery staples and uncategorized pantry items.

DAIRY = 300

Dairy products (milk, cheese, yogurt, butter).

MEAT = 400

Meat products (red / white raw or processed).

FISH = 500

Fish and seafood products.

FRUITS = 600

Fruit produce (fresh, dried or minimally processed).

VEGETABLES = 700

Vegetable produce (fresh, dried or minimally processed).

BEVERAGES = 800

Non-alcoholic beverages (soft drinks, juices, water, energy drinks).

ALCOHOLIC_BEVERAGES = 900

Alcoholic beverages (beer, wine, spirits, mixed alcohol).

TOBACCO = 1000

Tobacco products and smoking accessories.

CLEANING_SUPPLIES = 1100

Cleaning and household maintenance supplies.

PERSONAL_CARE = 1200

Personal hygiene and grooming products.

MEDICINE = 1300

Over-the-counter or prescribed medicinal / pharmaceutical items.

OTHER = 9999

Fallback when no defined category applies; minimize long-term usage.

Remarks

Extensibility: Maintain numeric spacing (increments of 100) so downstream analytical exports relying on ordered ranges remain stable.

Sentinel: NOT_DEFINED indicates classification pending (OCR / AI enrichment or user override has not yet supplied a definitive category). SHOULD be transient.

Domain Usage: Categories drive recipe suggestion relevance, allergen risk surfacing, basket composition insights and planned per-category spend trends.

Thread-safety: Enum is immutable and inherently thread-safe.