package Ġcom . gr in is rit . crypto . coin base Ċ Ċ import Ġcom . gr in is rit . crypto . common .* Ċ import Ġcom . gr in is rit . crypto . common . mongo . MongoDB Server Ċ import Ġkotlinx . coroutines . flow .* Ċ import Ġorg . lit ote . km ongo .* Ċ Ċ class ĠCoin base Mongo Client ( server : ĠMongoDB Server ) Ġ{ ĊĠĠĠ Ġprivate Ġval Ġdatabase Ġ= Ġserver . client . get Database ( Platform Name . coin base . toString ()) ĊĊĠĠĠ Ġfun Ġload Snapshots ( symbol : ĠString ): Ġun ref ined Data Flow Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcollection Ġ= Ġdatabase . get Collection < Timestamp ed Snapshot >( Coin base DataType . snapshot . toString ()) ĊĠĠĠĠĠĠĠ Ġreturn Ġcollection . find ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTimestamp ed Snapshot :: platform _ data Ġ/ ĠCoin base Snapshot :: product _ id Ġeq Ġsymbol ĊĠĠĠĠĠĠĠ Ġ). to Flow (). map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . to Timestamp ed Data () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġload Updates ( symbol : ĠString ): Ġun ref ined Data Flow Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcollection Ġ= Ġdatabase . get Collection < Timestamp ed L 2 Update >( Coin base DataType . l 2 update . toString ()) ĊĠĠĠĠĠĠĠ Ġreturn Ġcollection . find ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTimestamp ed Snapshot :: platform _ data Ġ/ ĠCoin base L 2 Update :: product _ id Ġeq Ġsymbol ĊĠĠĠĠĠĠĠ Ġ). to Flow (). map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . to Timestamp ed Data () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġload Trades ( symbol : ĠString ): Ġun ref ined Data Flow Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcollection Ġ= Ġdatabase . get Collection < Timestamp ed Trade >( Coin base DataType . match . toString ()) ĊĠĠĠĠĠĠĠ Ġreturn Ġcollection . find ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTimestamp ed Trade :: platform _ data Ġ/ ĠCoin base Match :: product _ id Ġeq Ġsymbol ĊĠĠĠĠĠĠĠ Ġ). to Flow (). map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . to Timestamp ed Data () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ }