package Ġcom . sh ah in . me ister search . data Ċ Ċ import Ġandroidx . paging . Paging Data Ċ import Ġcom . sh ah in . me ister search . data . local . models . relations . project _ section . Project With Sections Ċ import Ġcom . sh ah in . me ister search . data . local . models . relations . project _ section . Section With Projects Ċ import Ġcom . sh ah in . me ister search . data . local . models . relations . task _ Section . Task With Sections Ċ import Ġcom . sh ah in . me ister search . data . local . sources . Local Repository Ċ import Ġcom . sh ah in . me ister search . data . remote . models . body . Filter Body Ċ import Ġcom . sh ah in . me ister search . data . remote . models . response . search . Search Response Ċ import Ġcom . sh ah in . me ister search . data . remote . models . response . search . items . Task Result Ċ import Ġcom . sh ah in . me ister search . data . remote . sources . Remote Repository Ċ import Ġcom . sh ah in . me ister search . network . Network Result Ċ import Ġkotlinx . coroutines . flow . Flow Ċ Ċ class ĠRepository Impl ( ĊĠĠĠ Ġprivate Ġval Ġlocal Repository : ĠLocal Repository , ĊĠĠĠ Ġprivate Ġval Ġremote Repository : ĠRemote Repository Ċ ): ĠRepository Ġ{ ĊĠĠĠ Ġoverride Ġfun ĠgetToken (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġlocal Repository . getToken () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġsearch ( query : ĠString ): ĠNetwork Result < Search Response > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġremote Repository . search ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFilter Body ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġquery ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġsearch Paging ( query : ĠString ): ĠFlow < Paging Data < Task Result >> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġremote Repository . search Paging ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFilter Body ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġquery ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġsearch Paging With Db ( filter Body : ĠFilter Body ): ĠFlow < Paging Data < Task With Sections >> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġremote Repository . search Paging With Db ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfilter Body ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġget Project sWith Sections ( projectId : ĠInt ): ĠList < Project With Sections > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġlocal Repository . getProject sWith Sections ( projectId ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġget Section sWith Projects ( projectId : ĠInt ): ĠList < Section With Projects > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġlocal Repository . get Section sWith Projects ( projectId ) ĊĠĠĠ Ġ} Ċ }