package Ġcom . od hi amb op a ul . g movies . data . repository Ċ Ċ import Ġcom . od hi amb op a ul . g movies . common . Movie Types Ċ import Ġcom . od hi amb op a ul . g movies . data . local . Movie Dao Ċ import Ġcom . od hi amb op a ul . g movies . data . remote . G Movie API Ċ import Ġcom . od hi amb op a ul . g movies . data . remote . dto . Movie Details Response Ċ import Ġcom . od hi amb op a ul . g movies . data . remote . dto . Movies Response Ċ import Ġcom . od hi amb op a ul . g movies . domain . model . Movie Ċ import Ġcom . od hi amb op a ul . g movies . domain . repository . Movie Repository Ċ import Ġjavax . inject . Inject Ċ Ċ class ĠMovie Repository Impl Ġ@ Inject Ġconstructor ( ĊĠĠĠ Ġprivate Ġval Ġapi : ĠG Movie API , ĊĠĠĠ Ġprivate Ġval Ġmovie Dao : ĠMovie Dao Ċ ) Ġ: ĠMovie Repository Ġ{ ĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġget Pop ular Movies (): ĠMov ies Response Ġ= Ġapi . get Pop ular Movies () ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġget Top R ated Movies (): ĠMov ies Response Ġ= Ġapi . get Top R ated Movies () ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġget Up Com ing Movies (): ĠMov ies Response Ġ= Ġapi . get Up Com ing Movies () ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġget Movie Details ( movie Id : ĠInt ): ĠMovie Details Response Ġ= ĊĠĠĠĠĠĠĠ Ġapi . get Movie Details ( movie Id ) ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġget Local Movies ( movie Types : ĠMovie Types ): ĠList < Movie > Ġ= ĊĠĠĠĠĠĠĠ Ġmovie Dao . get Movies ( movie Types ) ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġsave Movie Loc ally ( movie : ĠMovie ) Ġ= Ġmovie Dao . save Movie ( movie ) ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġget Local Movie ById ( id : ĠInt ): ĠMovie Ġ= Ġmovie Dao . get Movie ById ( id ) Ċ }