package Ġcom . rar ible . protocol . nft . core . repository Ċ Ċ import Ġcom . rar ible . protocol . nft . core . model . Token Id Ċ import Ġkotlinx . coroutines . reactive . await First Ċ import Ġorg . springframework . data . mongodb . core . Find And Modify Options Ċ import Ġorg . springframework . data . mongodb . core . Reactive Mongo Operations Ċ import Ġorg . springframework . data . mongodb . core . query . Criteria Ċ import Ġorg . springframework . data . mongodb . core . query . Query Ċ import Ġorg . springframework . data . mongodb . core . query . Update Ċ import Ġorg . springframework . stereotype . Component Ċ Ċ @ Component Ċ class ĠToken Id Repository ( ĊĠĠĠ Ġprivate Ġval Ġmongo : ĠReactive Mongo Operations Ċ ) Ġ{ ĊĠĠĠ Ġsuspend Ġfun Ġsave ( tokenId : ĠToken Id ): ĠToken Id Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġmongo . save ( tokenId ). await First () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġsuspend Ġfun Ġgenerate Token Id ( id : ĠString ): ĠLong Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġmongo . find And Modify ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠQuery ( Criteria . where (" id "). ` is `( id )), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠUpdate (). inc (" value ", Ġ 1 ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFind And Modify Options . options (). return New ( true ). upsert ( true ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠToken Id :: class . java ĊĠĠĠĠĠĠĠ Ġ). await First (). value ĊĠĠĠ Ġ} Ċ }