Hi Tapan Anand, the logic for assigning the offer is not discussed in the code and should not be part of the User IMO. if we include dataUsage or any other field, we would have to change our user class every time we have a new dimension on the offer. For example, if someone pays a bill of $100 or more over the christmas, the user is gold for one year.
How a user get assigned a type is external to the code.
cc Jay Kim