package Ġcom . github . nothing else mat ters . design . rx Ċ Ċ import Ġorg . springframework . data . annotation . Id Ċ import Ġjava . beans . Constructor Properties Ċ import Ġorg . springframework . data . mongodb . core . mapping . Document Ċ Ċ enum Ġclass ĠCurrency Ġ{ ĊĠĠĠ ĠUSD , ĠEUR , ĠR UB Ċ } Ċ Ċ data Ġclass ĠProduct Ċ @ Constructor Properties (" id ", Ġ" name ", Ġ" currency ", Ġ" price ") Ċ constructor ( ĊĠĠĠ Ġ@ Id Ġval Ġid : ĠLong , ĊĠĠĠ Ġval Ġname : ĠString , ĊĠĠĠ Ġval Ġcurrency : ĠCurrency , ĊĠĠĠ Ġval Ġprice : ĠDouble , Ċ ) Ġ{ ĊĠĠĠ Ġfun Ġconvert Currency ( needed Currency : ĠCurrency ): ĠProduct Ġ= ĊĠĠĠĠĠĠĠ Ġif Ġ( currency Ġ== Ġneeded Currency ) Ġthis ĊĠĠĠĠĠĠĠ Ġelse Ġcopy ( price Ġ= Ġprice Ġ* ĠApplication Configuration . conversions [ currency ] ! ![ needed Currency ] !! ) Ċ } Ċ Ċ @ Document Ċ data Ġclass ĠUser Ċ @ Constructor Properties (" id ", Ġ" username ", Ġ" currency ") Ċ constructor ( ĊĠĠĠ Ġ@ Id Ġval Ġid : ĠLong , ĊĠĠĠ Ġval Ġusername : ĠString , ĊĠĠĠ Ġval Ġcurrency : ĠCurrency , Ċ ) Ċ