package Ġby . nt nk . ms lus chedule . db Ċ Ċ import Ġby . nt nk . ms lus chedule . data .* Ċ import Ġby . nt nk . ms lus chedule . db . data .* Ċ import Ġby . nt nk . ms lus chedule . di . Per App Ċ import Ġby . nt nk . ms lus chedule . network . data . Schedule Filter Ċ import Ġby . nt nk . ms lus chedule . utils . Schedule Type Ċ import Ġio . reactivex . Comp letable Ċ import Ġio . reactivex . Maybe Ċ import Ġio . reactivex . Observable Ċ import Ġio . reactivex . Single Ċ import Ġjavax . inject . Inject Ċ Ċ @ Per App Ċ class ĠDatabase Repository Ġ@ Inject Ġconstructor ( ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġapp Database : ĠApp Database , ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġdatabase Data Mapper : ĠDatabase Data Mapper Ċ ) Ġ{ ĊĠĠĠ Ġfun Ġinsert Study Group ( study Group : ĠStudy Group ): ĠSingle < Int > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠSingle . just ( study Group ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ ĠSchedule Container ( it . key , Ġit . name , ĠSchedule Type . ST UD Y GROUP , Ġit . year , Ġit . fac ulty , Ġit . course ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. flatMap Ġ{ Ġapp Database . schedule Container Dao . insert ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġit . toInt () Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġinsert Teacher ( teacher : ĠTe acher ): ĠSingle < Int > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠSingle . just ( teacher ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ ĠSchedule Container ( teacher . key , Ġteacher . name , ĠSchedule Type . TE AC HER , Ġteacher . year ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. flatMap Ġ{ Ġapp Database . schedule Container Dao . insert ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġit . toInt () Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdelete Schedule Container ( id : ĠInt ): ĠComp letable Ġ= Ġapp Database . schedule Container Dao . delete ( id ) ĊĊĠĠĠ Ġfun Ġget Schedule Containers (): ĠObservable < Schedule Container > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġapp Database . schedule Container Dao . get Schedule Containers () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. flatMap Observable Ġ{ ĠObservable . from Iterable ( it ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Schedule Container ( id : ĠInt ): ĠSingle < Schedule Container > Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapp Database . schedule Container Dao . get Schedule Container ( id ) ĊĊĠĠĠ Ġfun Ġinsert Week days ( week Id : ĠInt ): ĠComp letable Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠSingle . just ( database Data Mapper . create Week day List ( week Id )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. flatMap Comp letable Ġ{ Ġapp Database . weekday Dao . insert ( it ). ignore Element () Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġinsert Week s Get Ids ( data : ĠSchedule Filter , Ġcontainer Id : ĠInt ): ĠObservable < Int > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠSingle . just ( database Data Mapper . map ( data , Ġcontainer Id )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. flatMap Ġ{ Ġapp Database . week Dao . insert ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. flatMap Observable Ġ{ ĠObservable . from Iterable ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġit . toInt () Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Week s ( container Id : ĠInt ): ĠObservable < Week > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġapp Database . week Dao . get Week s ( container Id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. flatMap Observable Ġ{ ĠObservable . from Iterable ( it ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Week Key ( id : ĠInt ): ĠSingle < Int > Ġ= Ġapp Database . week Dao . get Week ( id ). map Ġ{ Ġit . key Ġ} ĊĊĠĠĠ Ġfun Ġis Week Initialized ( week Id : ĠInt ): ĠSingle < Boolean > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġapp Database . weekday Dao . get Week days ( week Id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġweek days Ġ-> Ġweek days . isNotEmpty () Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Week days With Study Group Less ons ( week Id : ĠInt ): ĠObservable < Week day With Less ons < Lesson >> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġapp Database . study Group Lesson Dao . get Week days With Less ons ( week Id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. flatMap Observable Ġ{ ĠObservable . from Iterable ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġdatabase Data Mapper . map ( it ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Week days With Teacher Less ons ( week Id : ĠInt ): ĠObservable < Week day With Less ons <* >> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġapp Database . teacher Lesson Dao . get Week days With Less ons ( week Id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. flatMap Observable Ġ{ ĠObservable . from Iterable ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġdatabase Data Mapper . map ( it ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Week day With Study Group Less ons ( weekday Id : ĠInt ): ĠSingle < Week day With Less ons < Lesson >> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġapp Database . study Group Lesson Dao . get Week day With Less ons ( weekday Id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġdatabase Data Mapper . map ( it ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Week day With Teacher Less ons ( weekday Id : ĠInt ): ĠSingle < Week day With Less ons < Lesson >> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġapp Database . teacher Lesson Dao . get Week day With Less ons ( weekday Id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġdatabase Data Mapper . map ( it ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġinsert Study Group Schedule ( week days : ĠList < Week day With Study Group Less ons >, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġweek Id : ĠInt ): ĠSingle < List < Week day With Study Group Less ons >> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġapp Database . weekday Dao . get Week days ( week Id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. flatMap Observable Ġ{ ĠObservable . from Iterable ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. flatMap Single Ġ{ Ġweek day Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġweek day With Less ons Ġ= Ġweek days . first OrNull Ġ{ Ġit . weekday Ġ== Ġweek day . value Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġless ons Ġ= Ġweek day With Less ons ?. lessons Ġ?: Ġempty List () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ flatMap Single Ġinsert Study Group Less ons ( lessons , Ġweek day . id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. flatMap Ġ{ ĠSingle . just ( Week day With Study Group Less ons ( weekday . id , Ġweek day . value , Ġit )) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. toList () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinsert Study Group Less ons ( lessons : ĠList < Study Group Lesson >, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġweek day Id : ĠInt ): ĠSingle < List < Study Group Lesson >> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠObservable . from Iterable ( lessons ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġlesson Ġ-> ĠDb Study Group Lesson ( lesson , Ġweek day Id ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. toList () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. flatMap Ġ{ Ġdb Less ons Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapp Database . study Group Lesson Dao . insert ( db Less ons ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. flatMap Observable Ġ{ Ġids Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġids . indices ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġless ons [ i ]. id Ġ= Ġids [ i ]. toInt () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ flatMap Observable ĠObservable . from Iterable ( lessons ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. toList () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġinsert Teacher Schedule ( week days : ĠList < Week day With Teacher Less ons >, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġweek Id : ĠInt ): ĠSingle < List < Week day With Teacher Less ons >> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġapp Database . weekday Dao . get Week days ( week Id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. flatMap Observable Ġ{ ĠObservable . from Iterable ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. flatMap Single Ġ{ Ġweek day Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġweek day With Less ons Ġ= Ġweek days . first OrNull Ġ{ Ġit . weekday Ġ== Ġweek day . value Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġless ons Ġ= Ġweek day With Less ons ?. lessons Ġ?: Ġempty List () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ flatMap Single Ġinsert Teacher Less ons ( lessons , Ġweek day . id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. flatMap Ġ{ ĠSingle . just ( Week day With Teacher Less ons ( weekday . id , Ġweek day . value , Ġit )) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. toList () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinsert Teacher Less ons ( lessons : ĠList < Teacher Lesson >, Ġweek day Id : ĠInt ): ĠSingle < List < Teacher Lesson >> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠObservable . from Iterable ( lessons ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġlesson Ġ-> ĠDb Teacher Lesson ( lesson , Ġweek day Id ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. toList () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. flatMap Ġ{ Ġdb Less ons Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapp Database . teacher Lesson Dao . insert ( db Less ons ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. flatMap Observable Ġ{ Ġids Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġids . indices ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġless ons [ i ]. id Ġ= Ġids [ i ]. toInt () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ flatMap Observable ĠObservable . from Iterable ( lessons ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. toList () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Study Group Lesson ( id : ĠInt ): ĠMaybe < Study Group Lesson > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġapp Database . study Group Lesson Dao . get Lesson ( id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ ĠStudy Group Lesson ( it . subject , Ġit . type , Ġit . teacher , Ġit . class room , Ġit . startTime , Ġit . endTime , Ġit . id ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Teacher Lesson ( id : ĠInt ): ĠMaybe < Teacher Lesson > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġapp Database . teacher Lesson Dao . get Lesson ( id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTe acher Lesson ( it . subject , Ġit . fac ulty , Ġit . groups , Ġit . type , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . class room , Ġit . startTime , Ġit . endTime , Ġit . id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Week days With Study Group Lesson ( lesson Subject : ĠString , Ġweek Id : ĠInt ): ĠSingle < List < String >> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġapp Database . weekday Dao . get Week days ( week Id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. flatMap Observable Ġ{ ĠObservable . from Iterable ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. flatMap Maybe Ġ{ Ġweek day Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ flatMap Maybe Ġapp Database . study Group Lesson Dao . get Less ons ( weekday . id , Ġlesson Subject ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. filter Ġ{ Ġit . isNotEmpty () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġweek day . value Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. toList () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Week days With Teacher Lesson ( lesson Groups : ĠString , Ġweek Id : ĠInt ): ĠSingle < List < String >> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġapp Database . weekday Dao . get Week days ( week Id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. flatMap Observable Ġ{ ĠObservable . from Iterable ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. flatMap Maybe Ġ{ Ġweek day Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ flatMap Maybe Ġapp Database . teacher Lesson Dao . get Less ons ( weekday . id , Ġlesson Groups ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. filter Ġ{ Ġit . isNotEmpty () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġweek day . value Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. toList () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdelete Less ons ( week Id : ĠInt , Ġschedule Type : ĠSchedule Type ): ĠComp letable Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġapp Database . weekday Dao . get Week days ( week Id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. flatMap Observable Ġ{ ĠObservable . from Iterable ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġweek day Ġ-> Ġweek day . id Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. flatMap Comp letable Ġ{ Ġweek day Id Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( schedule Type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSchedule Type . ST UD Y GROUP Ġ-> Ġapp Database . study Group Lesson Dao . delete ( weekday Id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSchedule Type . TE AC HER Ġ-> Ġapp Database . teacher Lesson Dao . delete ( weekday Id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Notes For Week day ( weekday Id : ĠInt ): ĠObservable < Note > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġapp Database . note Dao . get Notes For Week day ( weekday Id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. flatMap Observable Ġ{ ĠObservable . from Iterable ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ ĠNote ( it . id , Ġit . text , Ġit . subject ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġinsert Note ( note : ĠNote , Ġweek day Id : ĠInt ): ĠSingle < Int > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠSingle . just ( Db Note ( note . text , Ġnote . subject , Ġweek day Id )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. flatMap Ġ{ Ġapp Database . note Dao . insert ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġit . toInt () Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġupdate Note ( note : ĠNote , Ġweek day Id : ĠInt ): ĠComp letable Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠSingle . just ( Db Note ( note . text , Ġnote . subject , Ġweek day Id , Ġnote . id )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. flatMap Comp letable Ġ{ Ġapp Database . note Dao . update ( it ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdelete Note ( id : ĠInt ): ĠComp letable Ġ= Ġapp Database . note Dao . delete ( id ) Ċ } Ċ