package Ġcom . github . ps m . mov ied b . repository Ċ Ċ import Ġcom . github . ps m . mov ied b . db . Box Store Ċ import Ġcom . github . ps m . mov ied b . db . Resource Ċ import Ġcom . github . ps m . mov ied b . db . Response Ċ import Ġcom . github . ps m . mov ied b . db . model . Movie Ċ import Ġcom . github . ps m . mov ied b . db . model . Movie Response Ċ import Ġcom . github . ps m . mov ied b . db . model . Movie _ Ċ import Ġcom . github . ps m . mov ied b . db . model . Tv Response Ċ import Ġcom . github . ps m . mov ied b . db . model . detail . Movie Detail Ċ import Ġcom . github . ps m . mov ied b . db . model . genre . Genre Response Ċ import Ġcom . github . ps m . mov ied b . db . model . movie . credit . Movie Credit Ċ import Ġcom . github . ps m . mov ied b . db . model . person . Person Ċ import Ġcom . github . ps m . mov ied b . db . model . person . movie . Person Movie Credit Ċ import Ġcom . github . ps m . mov ied b . db . model . person . tv . Person Tv Credit Ċ import Ġcom . github . ps m . mov ied b . db . model . tv . credits . Tv Credit Ċ import Ġcom . github . ps m . mov ied b . db . model . tv . detail . Tv Detail Ċ import Ġcom . github . ps m . mov ied b . db . model . tv . popular . Tv Ċ import Ġcom . github . ps m . mov ied b . db . model . tv . popular . Tv Pop ular Response Ċ import Ġcom . github . ps m . mov ied b . db . model . tv . popular . Tv _ Ċ import Ġcom . github . ps m . mov ied b . db . model . up coming . Up Com ing Response Ċ import Ġcom . github . ps m . mov ied b . db . network Bound Resource Ċ import Ġio . ktor . client .* Ċ import Ġio . ktor . client . request .* Ċ import Ġio . object box . kotlin . flow Ċ import Ġkotlinx . coroutines . Dispatch ers Ċ import Ġkotlinx . coroutines . Experimental Cor outines Api Ċ import Ġkotlinx . coroutines . flow .* Ċ import Ġtim ber . log . Tim ber Ċ import Ġjavax . inject . Inject Ċ Ċ @ Opt In ( Experimental Cor outines Api :: class ) Ċ class ĠTM DB Repository Impl Ġ@ Inject Ġconstructor ( ĊĠĠĠ Ġprivate Ġval Ġbox Store : ĠBox Store , ĊĠĠĠ Ġprivate Ġval Ġapi Services : ĠHttpClient Ċ ) Ġ: ĠTM DB Repository Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġget Pop ular Movie Flow ( page : ĠInt , Ġrefresh : ĠBoolean ): ĠFlow < Resource < List < Movie >>> Ġ= ĊĠĠĠĠĠĠĠ Ġnetwork Bound Resource ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġquery Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbox Store . movie ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. query () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. order Desc ( Movie _. pop ularity ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. order Desc ( Movie _. release Date ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. order Desc ( Movie _. vote Count ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. order Desc ( Movie _. vote Average ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. flow () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . take ( LIMIT _ LIST _ ITEM ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfetch Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapi Services . get < Movie Response >( path Ġ= ĠPOP ULAR _ MOV IE _ ROUTE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparameter (" page ", Ġpage ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsave Fetch Result Ġ= Ġ{ Ġbox Store . movie . put ( it . results ) Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshould Fetch Ġ= Ġ{ Ġrefresh Ġ} ĊĠĠĠĠĠĠĠ Ġ). flow On ( Dispatch ers . IO ). distinct Until Changed () ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġget Pop ular Movie ( page : ĠInt ): ĠResponse < Movie Response > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġapi Services . get < Movie Response >( path Ġ= ĠPOP ULAR _ MOV IE _ ROUTE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparameter (" page ", Ġpage ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠResponse . Success ( result ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTim ber . e ( e ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠResponse . Error ( e ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Movie Detail ( id : ĠLong ): ĠFlow < Resource < Movie Detail >> Ġ= Ġnetwork Bound Resource ( ĊĠĠĠĠĠĠĠ Ġquery Ġ= Ġ{ Ġflow Ġ{ Ġemit ( box Store . movie Detail [ id ]) Ġ} Ġ}, ĊĠĠĠĠĠĠĠ Ġfetch Ġ= Ġ{ Ġapi Services . get < Movie Detail >( path Ġ= Ġ"$ MOV IE _ DETAIL _ ROUTE /$ id ") Ġ}, ĊĠĠĠĠĠĠĠ Ġsave Fetch Result Ġ= Ġ{ Ġbox Store . movie Detail . put ( it ) Ġ} ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġoverride Ġfun Ġget Gen res (): ĠFlow < Genre Response > Ġ= Ġflow Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġapi Services . get < Genre Response >( path Ġ= ĠGEN RES _ ROUTE ) ĊĠĠĠĠĠĠĠ Ġemit ( result ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġget Genre Normal () Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġapi Services . get < Genre Response >( path Ġ= ĠGEN RES _ ROUTE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult . genres ?. let Ġ{ Ġbox Store . genre . put ( it ) Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTim ber . e ( e ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġsearch Movie ( key Word : ĠString , Ġpage : ĠInt ): ĠResponse < Movie Response > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġapi Services . get < Movie Response >( path Ġ= ĠSEARCH _ MOV IE _ ROUTE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparameter (" query ", Ġkey Word ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparameter (" page ", Ġpage ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparameter (" include _ ad ult ", Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠResponse . Success ( result ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTim ber . e ( e ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠResponse . Error ( e ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Up coming Movie Flow (): ĠFlow < Up Com ing Response > Ġ= Ġflow Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġget Up coming Movie ( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( result Ġis ĠResponse . Success ) Ġemit ( result . value ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTim ber . e ( e ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġget Up coming Movie ( page : ĠInt ): ĠResponse < Up Com ing Response > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġapi Services . get < Up Com ing Response >( path Ġ= ĠUP COM ING _ MOV IE _ ROUTE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparameter (" page ", Ġpage ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparameter (" region ", Ġ" US ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠResponse . Success ( result ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTim ber . e ( e ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠResponse . Error ( e ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Movie Credit ( id : ĠLong ): ĠFlow < Resource < Movie Credit >> Ġ= Ġnetwork Bound Resource ( ĊĠĠĠĠĠĠĠ Ġquery Ġ= Ġ{ Ġflow Ġ{ Ġemit ( box Store . movie Credit [ id ]) Ġ} Ġ}, ĊĠĠĠĠĠĠĠ Ġfetch Ġ= Ġ{ Ġapi Services . get < Movie Credit >( path Ġ= ĠMOV IE _ CRED IT _ ROUTE . format ( id )) Ġ}, ĊĠĠĠĠĠĠĠ Ġsave Fetch Result Ġ= Ġ{ Ġbox Store . movie Credit . put ( it ) Ġ} ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġget Person Detail ( person Id : ĠLong ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġapi Services . get < Person >( path Ġ= ĠPER SON _ DETAIL _ ROUTE . format ( person Id )) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTim ber . i ( result . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbox Store . person . put ( result ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTim ber . e ( e ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġget Person Tv Credit ( person Id : ĠLong ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapi Services . get < Person Tv Credit >( path Ġ= ĠPER SON _ TV _ CRED IT _ ROUTE . format ( person Id )) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTim ber . i ( result . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbox Store . person Tv Credit . put ( result ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTim ber . e ( e ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġget Person Movie Credit ( person Id : ĠLong ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapi Services . get < Person Movie Credit >( path Ġ= ĠPER SON _ MOV IE _ CRED IT _ ROUTE . format ( person Id )) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTim ber . i ( result . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbox Store . person Movie Credit . put ( result ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTim ber . e ( e ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġget Pop ular Tv ( page : ĠInt ): ĠResponse < Tv Pop ular Response > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġapi Services . get < Tv Pop ular Response >( path Ġ= ĠPOP ULAR _ TV _ ROUTE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparameter (" page ", Ġpage ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult . t vs ?. let Ġ{ Ġbox Store . tv . put ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠResponse . Success ( result ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTim ber . e ( e ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠResponse . Error ( e ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Pop ular Tv Flow ( page : ĠInt , Ġrefresh : ĠBoolean ): ĠFlow < Resource < List < Tv >>> Ġ= ĊĠĠĠĠĠĠĠ Ġnetwork Bound Resource ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġquery Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbox Store . tv ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. query () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. order Desc ( Tv _. pop ularity ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. order Desc ( Tv _. first Air Date ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. order Desc ( Tv _. vote Count ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. order Desc ( Tv _. vote Average ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. flow () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . take ( LIMIT _ LIST _ ITEM ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfetch Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapi Services . get < Tv Pop ular Response >( path Ġ= ĠPOP ULAR _ TV _ ROUTE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparameter (" page ", Ġpage ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsave Fetch Result Ġ= Ġ{ Ġbox Store . tv . put ( it . t vs ) Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshould Fetch Ġ= Ġ{ Ġrefresh Ġ} ĊĠĠĠĠĠĠĠ Ġ). flow On ( Dispatch ers . IO ). distinct Until Changed () ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġsearch Tv ( key Word : ĠString , Ġpage : ĠInt ): ĠResponse < Tv Response > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġapi Services . get < Tv Response >( path Ġ= ĠSEARCH _ TV _ ROUTE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparameter (" query ", Ġkey Word ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparameter (" page ", Ġpage ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparameter (" include _ ad ult ", Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠResponse . Success ( result ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTim ber . e ( e ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠResponse . Error ( e ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Tv Detail ( id : ĠLong ): ĠFlow < Resource < Tv Detail >> Ġ= Ġnetwork Bound Resource ( ĊĠĠĠĠĠĠĠ Ġquery Ġ= Ġ{ Ġflow Ġ{ Ġemit ( box Store . tv Detail [ id ]) Ġ} Ġ}, ĊĠĠĠĠĠĠĠ Ġfetch Ġ= Ġ{ Ġapi Services . get < Tv Detail >( path Ġ= ĠTV _ DETAIL _ ROUTE . format ( id )) Ġ}, ĊĠĠĠĠĠĠĠ Ġsave Fetch Result Ġ= Ġ{ Ġbox Store . tv Detail . put ( it ) Ġ} ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġoverride Ġfun Ġget Tv Credit ( id : ĠLong ): ĠFlow < Resource < Tv Credit >> Ġ= Ġnetwork Bound Resource ( ĊĠĠĠĠĠĠĠ Ġquery Ġ= Ġ{ Ġflow Ġ{ Ġemit ( box Store . tv Credit [ id ]) Ġ} Ġ}, ĊĠĠĠĠĠĠĠ Ġfetch Ġ= Ġ{ Ġapi Services . get < Tv Credit >( path Ġ= ĠTV _ CRED IT _ ROUTE . format ( id )) Ġ}, ĊĠĠĠĠĠĠĠ Ġsave Fetch Result Ġ= Ġ{ Ġbox Store . tv Credit . put ( it ) Ġ} ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠPOP ULAR _ MOV IE _ ROUTE Ġ= Ġ"/ movie / popular " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠMOV IE _ DETAIL _ ROUTE Ġ= Ġ"/ movie " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠGEN RES _ ROUTE Ġ= Ġ"/ genre / movie / list " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠSEARCH _ MOV IE _ ROUTE Ġ= Ġ"/ search / movie " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠUP COM ING _ MOV IE _ ROUTE Ġ= Ġ"/ movie / up coming " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠMOV IE _ CRED IT _ ROUTE Ġ= Ġ"/ movie /% s / credits " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠPER SON _ DETAIL _ ROUTE Ġ= Ġ"/ person /% s " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠPER SON _ MOV IE _ CRED IT _ ROUTE Ġ= Ġ"/ person /% s / movie _ credits " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠPER SON _ TV _ CRED IT _ ROUTE Ġ= Ġ"/ person /% s / tv _ credits " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠPOP ULAR _ TV _ ROUTE Ġ= Ġ"/ tv / popular " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠSEARCH _ TV _ ROUTE Ġ= Ġ"/ search / tv " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠTV _ DETAIL _ ROUTE Ġ= Ġ"/ tv /% s " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠTV _ CRED IT _ ROUTE Ġ= Ġ"/ tv /% s / credits " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠLIMIT _ LIST _ ITEM Ġ= Ġ 1 5 ĊĠĠĠ Ġ} Ċ }