// EN: Item type enumeration for inventory items.
// VI: Enumeration loại item cho inventory items.

using InventoryService.Domain.SeedWork;

namespace InventoryService.Domain.AggregatesModel.InventoryAggregate;

/// <summary>
/// EN: Item type enumeration - classifies inventory items.
/// VI: Enumeration loại item - phân loại inventory items.
/// </summary>
public class ItemType : Enumeration
{
    /// <summary>
    /// EN: Raw material - ingredients for production (coffee beans, milk, sugar).
    /// VI: Nguyên liệu thô - nguyên liệu sản xuất (cà phê hạt, sữa, đường).
    /// </summary>
    public static readonly ItemType RawMaterial = new(1, nameof(RawMaterial));

    /// <summary>
    /// EN: Finished good - ready-to-sell products (Cappuccino, Espresso).
    /// VI: Thành phẩm - sản phẩm sẵn sàng bán (Cappuccino, Espresso).
    /// </summary>
    public static readonly ItemType FinishedGood = new(2, nameof(FinishedGood));

    /// <summary>
    /// EN: Consumable - operational supplies (cups, napkins, straws).
    /// VI: Vật tư tiêu hao - vật tư vận hành (ly, khăn giấy, ống hút).
    /// </summary>
    public static readonly ItemType Consumable = new(3, nameof(Consumable));

    public ItemType(int id, string name) : base(id, name)
    {
    }
}
