User model with partial validation