package Ġorg . step ik . android . domain . user _ courses . repository Ċ Ċ import Ġio . reactivex . Comp letable Ċ import Ġio . reactivex . Maybe Ċ import Ġio . reactivex . Single Ċ import Ġorg . step ic . d roid . util . Paged List Ċ import Ġorg . step ik . android . domain . base . DataSource Type Ċ import Ġorg . step ik . android . domain . course _ list . model . User Course Query Ċ import Ġorg . step ik . android . domain . user _ courses . model . User Course Ċ Ċ interface ĠUser Courses Repository Ġ{ ĊĠĠĠ Ġfun ĠgetUser Courses ( user Course Query : ĠUser Course Query Ġ= ĠUser Course Query ( page Ġ= Ġ 1 , Ġis Arch ived Ġ= Ġfalse ), Ġsource Type : ĠDataSource Type Ġ= ĠDataSource Type . CACHE ): ĠSingle < Paged List < User Course >> ĊĠĠĠ Ġfun ĠgetUser Course By Course Id ( course Id : ĠLong , Ġsource Type : ĠDataSource Type Ġ= ĠDataSource Type . CACHE ): ĠMaybe < User Course > ĊĠĠĠ Ġfun Ġsave User Course ( user Course : ĠUser Course ): ĠSingle < User Course > ĊĊĠĠĠ Ġ/** * ĊĠĠĠĠ Ġ* Ġ ĠCached Ġpurpose Ġonly ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġadd User Course ( user Course : ĠUser Course ): ĠComp letable ĊĠĠĠ Ġfun Ġremove User Course ( course Id : ĠLong ): ĠComp letable Ċ }