Our team has been slowly refactoring code to implement SOLID practices and enforce better naming conventions. We have run into a problem where we have an enum that is currently named the same thing as another class we need to create -- "Department."
Right now, we have an enum that represents the different departments, for example:
Department.HumanResource
Department.InformationTechnology
This allows us to use that enum to quickly refer to departments based on a friendly name rather than an underlying integer ID in situations like this:
Employee.IsInDepartment(Department.InformationTechnology)
It's not a "Type" or "Status" or something like that which is a common way to name enums. We thought maybe something like "DepartmentName" but that felt a little strange, because the department class will have the "Name" property, and this enum should also be a property on the Department class.
I realize naming is subjective, so I want to pose the questions:
Are we looking at this from the wrong perspective? Is there another way to accomplish this that we are overlooking?