I want to to follow a clean architecture rules (with domain and architecture layers). I have a problem with properties that an entity should or should not have.
Let's say that I have a User domain. It has all the business related properties (like first name, last name, email, mobile phone number, etc.). But there are also some properties that are specific to each user, but have only indirect business relation. For example the business may want me to send an email, which is customized based on the OS the user uses to interact with our service. Can I make the "OS version" a property of the User entity? Or should I create an application service that will retrieve an OS version based on provided User entity?
Update: I have a supplementary use case: what if we are using an external provider who assignes its own unique ID for each of the user? For example Stripe - in order to update user's credit card info I need to provide Strip with unique ID which I get when user registered his card. Does the stripe_id become a part of User entity?