namespace ExpenseTracker.Domain.Enums; public abstract class Category : Enumeration<Category> { public static readonly Category Savings = new SavingsCategory(); public static readonly Category Investments = new InvestmentsCategory(); public static readonly Category Housing = new HousingCategory(); public static readonly Category Transportation = new TransportationCategory(); public static readonly Category Groceries = new GroceriesCategory(); public static readonly Category Utilities = new UtilitiesCategory(); public static readonly Category HealthCare = new HealthCareCategory(); public static readonly Category LifeInsurance = new LifeInsuranceCategory(); public static readonly Category Childcare = new ChildcareCategory(); public static readonly Category PersonalDebts = new PersonalDebtsCategory(); public static readonly Category ClothingAndAccessories = new ClothingAndAccessoriesCategory(); public static readonly Category GymMembership = new GymMembershipCategory(); public static readonly Category PersonalProducts = new PersonalProductsCategory(); public static readonly Category Entertainment = new EntertainmentCategory(); public static readonly Category GadgetsAndElectronics = new GadgetsAndElectronicsCategory(); public static readonly Category Gifts = new GiftsCategory(); public static readonly Category Donations = new DonationsCategory(); public static readonly Category Travel = new TravelCategory(); public static readonly Category InitialBalance = new InitialBalanceCategory(); protected Category(int value, string name) : base(value, name) { } private sealed class AllCategory : Category { public AllCategory() : base(0, "Savings") { } } private sealed class SavingsCategory : Category { public SavingsCategory() : base(1, "Savings") { } } private sealed class InvestmentsCategory : Category { public InvestmentsCategory() : base(2, "Investments") { } } private sealed class HousingCategory : Category { public HousingCategory() : base(3, "Housing") { } } private sealed class TransportationCategory : Category { public TransportationCategory() : base(4, "Transportation") { } } private sealed class GroceriesCategory : Category { public GroceriesCategory() : base(5, "Groceries") { } } private sealed class UtilitiesCategory : Category { public UtilitiesCategory() : base(6, "Utilities") { } } private sealed class HealthCareCategory : Category { public HealthCareCategory() : base(7, "Health") { } } private sealed class LifeInsuranceCategory : Category { public LifeInsuranceCategory() : base(8, "LifeInsurance") { } } private sealed class ChildcareCategory : Category { public ChildcareCategory() : base(9, "Childcare") { } } private sealed class PersonalDebtsCategory : Category { public PersonalDebtsCategory() : base(10, "PersonalDebts") { } } private sealed class ClothingAndAccessoriesCategory : Category { public ClothingAndAccessoriesCategory() : base(11, "ClothingAndAccessories") { } } private sealed class GymMembershipCategory : Category { public GymMembershipCategory() : base(12, "GymMembership") { } } private sealed class PersonalProductsCategory : Category { public PersonalProductsCategory() : base(13, "PersonalProducts") { } } private sealed class EntertainmentCategory : Category { public EntertainmentCategory() : base(14, "Entertainment") { } } private sealed class GadgetsAndElectronicsCategory : Category { public GadgetsAndElectronicsCategory() : base(15, "GadgetsAndElectronics") { } } private sealed class GiftsCategory : Category { public GiftsCategory() : base(16, "Gifts") { } } private sealed class DonationsCategory : Category { public DonationsCategory() : base(17, "Donations") { } } private sealed class TravelCategory : Category { public TravelCategory() : base(18, "Travel") { } } private sealed class InitialBalanceCategory : Category { public InitialBalanceCategory() : base(19, "InitialBalance") { } } }