Refactor Purchase to fix the defaults values and add a new spec for the class