Contract and abstract GiveyModel functionality for Donation