package Ġcom . min cor . k odi example . domain . use cases . details Ċ Ċ import Ġcom . min cor . k odi example . common . Consts Ċ import Ġcom . min cor . k odi example . data . dto . S Result Ċ import Ġcom . min cor . k odi example . data . dto . apply If Success Suspend Ċ import Ġcom . min cor . k odi example . data . model . local . Movie Entity Ċ import Ġcom . min cor . k odi example . data . repository . IM ov ies Repository Ċ import Ġcom . min cor . k odi example . data . repository . I Remote Movies Repository Ċ import Ġcom . min cor . k odi example . domain . use cases . base . I UseCase Ċ import Ġcom . ras alex man . k odi . annotations . Bind Provider Ċ import Ġcom . ras alex man . k odi . annotations . With Instance Ċ Ċ @ Bind Provider ( ĊĠĠĠ Ġto Class Ġ= ĠI Get Remote Details UseCase :: class , ĊĠĠĠ Ġto Module Ġ= ĠConst s . Modules . UC Details Name Ċ ) Ċ class ĠGet Remote Details UseCase ( ĊĠĠĠ Ġ@ With Instance ( with Ġ= ĠI Movies Repository :: class ) ĊĠĠĠ Ġprivate Ġval Ġmovies Repository : ĠI Remote Movies Repository Ċ ) Ġ: ĠI Get Remote Details UseCase Ġ{ ĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġinvoke ( data : ĠInt ): ĠS Result < Movie Entity > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġmovies Repository . get Remote Movie ById ( data ). apply If Success Suspend Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . has Details Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmovies Repository . save Movie ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ interface ĠI Get Remote Details UseCase Ġ: ĠI UseCase . InOut < Int , ĠS Result < Movie Entity >>