clase tipo producto refactorizado