chore(model): move attributes normalization and enum validator generation to model constructor