package Ġcz . lev in zon r . ro x ies ample . domain Ċ Ċ import Ġcz . lev in zon r . ro x ies ample . data . Note Repository Ċ import Ġkotlinx . coroutines . delay Ċ Ċ class ĠGet Notes Interactor Ġ: ĠBase Async Interactor < Complete Result < List < Note >>> Ġ{ ĊĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġinvoke (): ĠComplete Result < List < Note >> Ġ{ ĊĠĠĠĠĠĠĠ Ġdelay ( 3 0 0 0 ) ĊĠĠĠĠĠĠĠ Ġreturn ĠSuccess ( Note Repository . load All ()) ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠDelete Note Interactor () Ġ: ĠBase Async Interactor < Complete Result < Long >> Ġ{ ĊĠĠĠ Ġdata Ġclass ĠInput ( val Ġnote : ĠNote ) ĊĠĠĠ Ġvar Ġinput : ĠInput ? Ġ= Ġnull ĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġinvoke (): ĠComplete Result < Long > Ġ{ ĊĠĠĠĠĠĠĠ ĠNote Repository . delete ( require NotNull ( input ?. note )) ĊĠĠĠĠĠĠĠ Ġreturn ĠSuccess ( require NotNull ( input ?. note ?. id )) ĊĠĠĠ Ġ} Ċ } ĊĊ Ċ class ĠAdd Note Interactor () Ġ: ĠBase Async Interactor < Complete Result < Note >> Ġ{ ĊĠĠĠ Ġdata Ġclass ĠInput ( val Ġnote : ĠString ) ĊĠĠĠ Ġvar Ġinput : ĠInput ? Ġ= Ġnull ĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġinvoke (): ĠComplete Result < Note > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġnote Ġ= ĠNote Repository . add Note ( require NotNull ( input ?. note )) ĊĠĠĠĠĠĠĠ Ġreturn ĠSuccess ( note ) ĊĠĠĠ Ġ} Ċ }