package Ġcom . bank account . balance Ċ Ċ import Ġio . quarkus . mongodb . pan ache . Mongo Entity Ċ import Ġorg . bson . types . ObjectId Ċ Ċ @ Mongo Entity ( collection Ġ= Ġ" balances ") Ċ data Ġclass ĠBalance Ġ( ĊĠĠĠĠĠĠĠ Ġvar Ġid : ĠObjectId ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġvar ĠaccountId : ĠString , ĊĠĠĠĠĠĠĠ Ġvar Ġvalue : ĠDouble Ċ ) Ġ{ ĊĊĠĠĠ Ġfun Ġre calculate ( transaction : ĠTransaction ) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcopy ( accountId Ġ= Ġtransaction . accountId , Ġvalue Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( transaction . type Ġ== ĠTransaction Type . IN CO ME ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . value Ġ+ Ġtransaction . value ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . value Ġ- Ġtransaction . value ) ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ@ Jvm Static Ġfun Ġdefault Instance ( accountId : ĠString ): ĠBalance Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBalance ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠaccountId Ġ= ĠaccountId , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Ġ= Ġ 0 . 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠ Ġ} Ċ Ċ }