package Ġcom . system . money control . data . repositories Ċ Ċ import Ġcom . google . firebase . firestore . Collection Reference Ċ import Ġcom . google . firebase . firestore . Document Snapshot Ċ import Ġcom . system . money control . data . map pers . Tag Firebase Ċ import Ġcom . system . money control . infrastructure . Result Ċ import Ġcom . system . money control . model . entities . Tag Ċ Ċ /** Ċ Ġ* Ġ@ param Ġcollection : ĠFirebase ĠFire store Ġ( tags ) Ċ Ġ*/ Ċ class ĠTag Repository ( val Ġcollection : ĠCollection Reference ) Ġ{ ĊĊĠĠĠ Ġfun ĠgetList () Ġ= Ġobject Ġ: ĠResult < Tag >() Ġ{ ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġexecute () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcollection . orderBy (" name "). get () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add On Success Listener Ġ{ Ġtask Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonSuccess List ?. invoke ( task . documents . map Ġ{ ĠgetModel ( it ) Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add On Failure Listener Ġ{ Ġon Failure ?. invoke ( it ) Ġ} ĊĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġsave ( model : ĠTag ) Ġ= Ġobject Ġ: ĠResult < Tag >() Ġ{ ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġexecute () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcollection . add ( model . to Mapper ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add On Success Listener Ġ{ ĠonSuccess Item ?. invoke ( model . copy ( key Ġ= Ġit . id )) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add On Failure Listener Ġ{ Ġon Failure ?. invoke ( it ) Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdelete ( model : ĠTag ) Ġ= Ġobject Ġ: ĠResult < Tag >() Ġ{ ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġexecute () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcollection . document ( model . key !! ). delete () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add On Success Listener Ġ{ ĠonSuccess Item ?. invoke ( model ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add On Failure Listener Ġ{ Ġon Failure ?. invoke ( it ) Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġupdate ( model : ĠTag ) Ġ= Ġobject Ġ: ĠResult < Tag >() Ġ{ ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġexecute () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcollection . document ( model . key !! ). set ( model . to Mapper ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add On Success Listener Ġ{ ĠonSuccess Item ?. invoke ( model ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add On Failure Listener Ġ{ Ġon Failure ?. invoke ( it ) Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠgetModel ( it : ĠDocument Snapshot ) Ġ= Ġit . toObject ( Tag Firebase :: class . java ) !!. to Model ( it . id ) Ċ }