package Ġcom . example . data . repository Ċ Ċ import Ġcom . example . data . local . datasource . Local Team DataSource Ċ import Ġcom . example . data . local . entity . to Entity Ċ import Ġcom . example . data . remote . datasource . Remote Team DataSource Ċ import Ġcom . example . data . util . Cache Util Ċ import Ġcom . example . domain . base . Cache Type Ċ import Ġcom . example . domain . entity . Team Entity Ċ import Ġcom . example . domain . repository . Team Repository Ċ import Ġkotlinx . coroutines . flow . Flow Ċ import Ġjavax . inject . Inject Ċ Ċ class ĠTeam Repository Impl Ġ@ Inject Ġconstructor ( ĊĠĠĠ Ġprivate Ġval Ġremote Team DataSource : ĠRemote Team DataSource , ĊĠĠĠ Ġprivate Ġval Ġlocal Team DataSource : ĠLocal Team DataSource Ċ ) Ġ: ĠTeam Repository Ġ{ ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġfetch Team (): ĠFlow < Team Entity > Ġ= ĊĠĠĠĠĠĠ ĠCache Util < Team Entity >() ĊĠĠĠĠĠĠĠĠĠĠ Ġ. remote DataSource Ġ{ Ġremote Team DataSource . fetch Team () Ġ} ĊĠĠĠĠĠĠĠĠĠĠ Ġ. local DataSource Ġ{ Ġlocal Team DataSource . fetch Team (). to Entity () Ġ} ĊĠĠĠĠĠĠĠĠĠĠ Ġ. insert Room Ġ{ Ġlocal Team DataSource . insert Team ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠ Ġ. cache Type ( Cache Type ( Cache Type . Type . ALWAYS )) ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġdelete ( team Entity : ĠTeam Entity ) Ġ{ ĊĊĠĠĠ Ġ} Ċ }