classlib/ExpenseTracker.Domain/Enums/Category.cs
2024-08-07 21:12:02 +03:00

127 lines
4.3 KiB
C#

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") { }
}
}