A user has a user type and these user types are stored in a database with their own attributes and some id to reference it into the user table.
case class User(id: Int, userType: Int, firstName: String, lastName: String)
case class UserType(id: Int, name: String)
Also I have an aggregation object.
case class User(userData: User, userType: UserType)
Application managers can create their own user types and assign them to the different application users.
Additional information: These user types cannot be modified once created, but could be deleted after passing some validations.
Should the user type be an entity (because it needs to be stored with some id) or be a value object (because two user types with the same values, except the id, are in fact the same object)?
EDIT
Application managers can create their own user types so UserType needs to have its own repository, that's clear. User repository can have just the reference of user type instead of having the user type itself, but the question is if the user type can be treated as an entity or a value object.