package Ġio . h oly gu ac am ole . bot . user Ċ Ċ import Ġorg . springframework . data . mongodb . core . Mongo Template Ċ import Ġorg . springframework . data . mongodb . repository . Mongo Repository Ċ import Ġorg . springframework . stereotype . Repository Ċ Ċ @ Repository Ċ class ĠUser Repository ( private Ġval Ġmongo Repository : ĠUser Mongo Repository , Ġprivate Ġval Ġmongo Template : ĠMongo Template ) Ġ{ ĊĊĠĠĠ Ġfun ĠfindAll (): ĠList < User > Ġ= Ġmongo Repository . findAll () ĊĊĠĠĠ Ġfun Ġsave All ( entities : ĠIterable < User >): ĠList < User > Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmongo Repository . save All ( entities . map Ġ{ Ġit . copy () Ġ}) ĊĊĠĠĠ Ġfun Ġsave ( entity : ĠUser ): ĠUser Ġ= Ġmongo Repository . save ( entity . copy ()) ĊĊĠĠĠ Ġfun Ġdelete All () Ġ= Ġmongo Repository . delete All () ĊĊĠĠĠ Ġfun Ġdelete By UserId ( userId : ĠString ): ĠInt Ġ= Ġmongo Repository . delete By UserId ( userId ) ĊĊĠĠĠ Ġfun ĠfindBy UserId ( userId : ĠString ): ĠUser ? Ġ= Ġmongo Repository . findBy UserId ( userId ) ĊĊĠĠĠ Ġfun Ġupdate ( user : ĠUser ) Ġ{ ĊĠĠĠĠĠĠĠ ĠfindBy UserId ( user . userId )?. run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsave ( user . copy ( id Ġ= Ġthis . id )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Repository Ċ interface ĠUser Mongo Repository Ġ: ĠMongo Repository < User , ĠString > Ġ{ ĊĠĠĠ Ġfun Ġdelete By UserId ( userId : ĠString ): ĠInt ĊĊĠĠĠ Ġfun ĠfindBy UserId ( userId : ĠString ): ĠUser ? Ċ } Ċ Ċ data Ġclass ĠUser ( val Ġid : ĠString ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠuserId : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġname : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġis Bot : ĠBoolean Ċ ) Ċ