// EN: Business category enumeration.
// VI: Enumeration ngành nghề kinh doanh.

using MerchantService.Domain.SeedWork;

namespace MerchantService.Domain.AggregatesModel.ShopAggregate;

/// <summary>
/// EN: Represents business categories for shops.
/// VI: Đại diện cho ngành nghề kinh doanh của shop.
/// </summary>
public class BusinessCategory : Enumeration
{
    /// <summary>
    /// EN: Food and Beverage.
    /// VI: Ẩm thực và Đồ uống.
    /// </summary>
    public static readonly BusinessCategory FoodBeverage = new(1, nameof(FoodBeverage));
    
    /// <summary>
    /// EN: Fashion and Apparel.
    /// VI: Thời trang và May mặc.
    /// </summary>
    public static readonly BusinessCategory Fashion = new(2, nameof(Fashion));
    
    /// <summary>
    /// EN: Electronics and Technology.
    /// VI: Điện tử và Công nghệ.
    /// </summary>
    public static readonly BusinessCategory Electronics = new(3, nameof(Electronics));
    
    /// <summary>
    /// EN: Healthcare and Pharmacy.
    /// VI: Chăm sóc sức khỏe và Dược phẩm.
    /// </summary>
    public static readonly BusinessCategory Healthcare = new(4, nameof(Healthcare));
    
    /// <summary>
    /// EN: Beauty and Personal Care.
    /// VI: Làm đẹp và Chăm sóc cá nhân.
    /// </summary>
    public static readonly BusinessCategory Beauty = new(5, nameof(Beauty));
    
    /// <summary>
    /// EN: Education and Training.
    /// VI: Giáo dục và Đào tạo.
    /// </summary>
    public static readonly BusinessCategory Education = new(6, nameof(Education));
    
    /// <summary>
    /// EN: Entertainment and Leisure.
    /// VI: Giải trí và Nghỉ dưỡng.
    /// </summary>
    public static readonly BusinessCategory Entertainment = new(7, nameof(Entertainment));
    
    /// <summary>
    /// EN: Professional Services.
    /// VI: Dịch vụ chuyên nghiệp.
    /// </summary>
    public static readonly BusinessCategory Services = new(8, nameof(Services));
    
    /// <summary>
    /// EN: Grocery and Supermarket.
    /// VI: Tạp hóa và Siêu thị.
    /// </summary>
    public static readonly BusinessCategory Grocery = new(9, nameof(Grocery));
    
    /// <summary>
    /// EN: Home and Furniture.
    /// VI: Nhà cửa và Nội thất.
    /// </summary>
    public static readonly BusinessCategory HomeFurniture = new(10, nameof(HomeFurniture));
    
    /// <summary>
    /// EN: Other categories.
    /// VI: Các ngành nghề khác.
    /// </summary>
    public static readonly BusinessCategory Other = new(99, nameof(Other));

    // ─── Vertical-specific categories (for multi-vertical POS) ───
    
    /// <summary>
    /// EN: Café — coffee shops, tea houses, bubble tea.
    /// VI: Quán cà phê, trà sữa.
    /// </summary>
    public static readonly BusinessCategory Cafe = new(11, nameof(Cafe));
    
    /// <summary>
    /// EN: Restaurant — restaurants, bars, eateries.
    /// VI: Nhà hàng, quán ăn, bar.
    /// </summary>
    public static readonly BusinessCategory Restaurant = new(12, nameof(Restaurant));
    
    /// <summary>
    /// EN: Karaoke — karaoke bars, entertainment venues.
    /// VI: Karaoke, các địa điểm giải trí.
    /// </summary>
    public static readonly BusinessCategory Karaoke = new(13, nameof(Karaoke));
    
    /// <summary>
    /// EN: Spa — spa, massage, wellness centers.
    /// VI: Spa, massage, trung tâm sức khỏe.
    /// </summary>
    public static readonly BusinessCategory Spa = new(14, nameof(Spa));

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