ariana-salese / DNT-TakeAwayNow

2 stars 0 forks source link

La clase dinero no debería ser una entidad, sino un value object #29

Open maurociancio opened 1 year ago

maurociancio commented 1 year ago

https://github.com/ariana-salese/DNT-TakeAwayNow/blob/50468340cb88f9c11e1bbab68f1c76d8d39c99fc/grails-app/domain/takeawaynow/Dinero.groovy#L9

no deberia estar en la carpeta domain, sino fuera de la misma. son varias cosas a tener en cuenta.

es un value object, no una entidad, por lo tanto no debería tener una tabla asociada. la persistencia del dinero se debería hacer dentro del cliente, por ejemplo

en la tabla cliente habrá los campos del cliente + un campo que sea saldo_monto y otro saldo_moneda. eso se hace en grails con persistencia embedded https://docs.grails.org/5.0.0/ref/Domain%20Classes/embedded.html

tambien van a tener que poner un constructor por defecto.

creo que deberian dejar esto para un cachito mas adelante, cuando ya tengan mas o menos funcionando la app, sino se van a complicar una banda.

aca hay un ejemplo https://github.com/Nuevas-Tecnologias-FIUBA/buffer/blob/master/src/main/groovy/buffet/Dinero.groovy https://github.com/Nuevas-Tecnologias-FIUBA/buffer/blob/master/grails-app/domain/buffet/Cliente.groovy

maurociancio commented 1 year ago

sugiero que usen un bigdecimal de una por todos lados y luego refactoricen por Dinero