package Ġcom . th om ask io ko . tv man iac . discover . api . inter actor Ċ Ċ import Ġcom . th om ask io ko . tv man iac . datasource . cache . Show Ċ import Ġcom . th om ask io ko . tv man iac . discover . api . Discover Show Result Ċ import Ġcom . th om ask io ko . tv man iac . discover . api . repository . Tv Shows Repository Ċ import Ġcom . th om ask io ko . tv man iac . discover . api . model . Show Category Ċ import Ġcom . th om ask io ko . tv man iac . discover . api . model . Show Category . POP ULAR Ċ import Ġcom . th om ask io ko . tv man iac . discover . api . model . Show Category . TOP _ R ATED Ċ import Ġcom . th om ask io ko . tv man iac . discover . api . model . Show Category . TRE ND ING Ċ import Ġcom . th om ask io ko . tv man iac . discover . api . model . Show Ui Model Ċ import Ġcom . th om ask io ko . tv man iac . shared . core . Flow Interactor Ċ import Ġcom . th om ask io ko . tv man iac . shared . core . util . Resource Ċ import Ġcom . th om ask io ko . tv man iac . shared . core . util . Status Ċ import Ġkotlinx . coroutines . flow . Flow Ċ import Ġkotlinx . coroutines . flow . combine Ċ import Ġkotlinx . coroutines . flow . map Ċ Ċ private Ġconst Ġval ĠFEATURE D _ LIST _ SIZE Ġ= Ġ 5 Ċ Ċ class ĠOb serve Discover Shows Interactor Ġconstructor ( ĊĠĠĠ Ġprivate Ġval Ġrepository : ĠT v Shows Repository , Ċ ) Ġ: ĠFlow Interactor < Unit , ĠDis cover Show Result >() Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġrun ( params : ĠUnit ): ĠFlow < Discover Show Result > Ġ= Ġcombine ( ĊĠĠĠĠĠĠĠ Ġrepository . observe Show sBy Category ID ( TRE ND ING . type ). to Show Data ( TRE ND ING ), ĊĠĠĠĠĠĠĠ Ġrepository . observe Show sBy Category ID ( TOP _ R ATED . type ). to Show Data ( TOP _ R ATED ), ĊĠĠĠĠĠĠĠ Ġrepository . observe Show sBy Category ID ( POP ULAR . type ). to Show Data ( POP ULAR ), ĊĠĠĠ Ġ) Ġ{ Ġtrend ing , Ġtop R ated , Ġpopular Ġ-> ĊĊĠĠĠĠĠĠĠ ĠDis cover Show Result ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfeatured Shows Ġ= Ġtrend ing . copy ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Ui Models Ġ= Ġtrend ing . show Ui Models ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. sorted By Ġ{ Ġit . votes Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. take ( FEATURE D _ LIST _ SIZE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtrend ing Shows Ġ= Ġtrend ing , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpopular Shows Ġ= Ġpopular , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtop R ated Shows Ġ= Ġtop R ated ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠFlow < Resource < List < Show >> >. to Show Data ( category : ĠShow Category ) Ġ= Ġmap Ġ{ ĊĠĠĠĠĠĠĠ ĠDis cover Show Result . Discover Shows Data ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠisLoading Ġ= Ġit . status Ġ== ĠStatus . LOADING , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcategory Ġ= Ġcategory , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshow Ui Models Ġ= Ġit . data ?. to Tv Show List () Ġ?: Ġempty List (), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠerrorMessage Ġ= Ġit . message ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠList < Show >. to Tv Show List (): ĠList < Show Ui Model > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġmap Ġ{ Ġit . to Tv Show () Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠShow . to Tv Show (): ĠShow Ui Model Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠShow Ui Model ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġid . toInt (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= Ġtitle , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverview Ġ= Ġdescription , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlanguage Ġ= Ġlanguage , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġposter ImageUrl Ġ= Ġposter _ image _ url , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġback drop ImageUrl Ġ= Ġback drop _ image _ url , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvotes Ġ= Ġvotes . toInt (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaverage Votes Ġ= Ġvote _ average , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgenre Ids Ġ= Ġgenre _ ids , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġyear Ġ= Ġyear , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstatus Ġ= Ġstatus , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠisIn Watch list Ġ= Ġis _ watch list ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ } Ċ