package Ġco . anit rend . ret rofit . graphql . data . user . k oin Ċ Ċ import Ġco . anit rend . ret rofit . graphql . data . api . common . Endpoint Type Ċ import Ġco . anit rend . ret rofit . graphql . data . api . provider . extensions . api Ċ import Ġco . anit rend . ret rofit . graphql . data . arch . database . extensions . db Ċ import Ġco . anit rend . ret rofit . graphql . data . arch . extensions . online Controller Ċ import Ġco . anit rend . ret rofit . graphql . data . user . converters . User Entity Converter Ċ import Ġco . anit rend . ret rofit . graphql . data . user . converters . User Model Converter Ċ import Ġco . anit rend . ret rofit . graphql . data . user . mapper . User Response Mapper Ċ import Ġco . anit rend . ret rofit . graphql . data . user . repository . UserRepository Contract Ċ import Ġco . anit rend . ret rofit . graphql . data . user . repository . UserRepository Impl Ċ import Ġco . anit rend . ret rofit . graphql . data . user . source . User Source Impl Ċ import Ġco . anit rend . ret rofit . graphql . data . user . source . contract . User Source Ċ import Ġco . anit rend . ret rofit . graphql . data . user . use case . User UseCase Contract Ċ import Ġco . anit rend . ret rofit . graphql . data . user . use case . User UseCase Impl Ċ import Ġorg . k oin . dsl . module Ċ Ċ private Ġval Ġsource Module Ġ= Ġmodule Ġ{ ĊĠĠĠ Ġfactory < User Source > Ġ{ ĊĠĠĠĠĠĠĠ ĠUser Source Impl ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsettings Ġ= Ġget (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlocal Source Ġ= Ġdb (). user Dao (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġremote Source Ġ= Ġapi ( Endpoint Type . GITHUB ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstrategy Ġ= Ġonline Controller (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmapper Ġ= Ġget (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconverter Ġ= Ġget (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdispatch ers Ġ= Ġget () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ private Ġval Ġconverter Module Ġ= Ġmodule Ġ{ ĊĠĠĠ Ġfactory Ġ{ ĊĠĠĠĠĠĠĠ ĠUser Model Converter () ĊĠĠĠ Ġ} ĊĠĠĠ Ġfactory Ġ{ ĊĠĠĠĠĠĠĠ ĠUser Entity Converter () ĊĠĠĠ Ġ} Ċ } Ċ Ċ private Ġval Ġmapper Module Ġ= Ġmodule Ġ{ ĊĠĠĠ Ġfactory Ġ{ ĊĠĠĠĠĠĠĠ ĠUser Response Mapper ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlocal Source Ġ= Ġdb (). user Dao (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconverter Ġ= Ġget () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ private Ġval Ġuse Case Module Ġ= Ġmodule Ġ{ ĊĠĠĠ Ġfactory < User UseCase Contract > Ġ{ ĊĠĠĠĠĠĠĠ ĠUser UseCase Impl ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrepository Ġ= Ġget () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ private Ġval Ġrepository Module Ġ= Ġmodule Ġ{ ĊĠĠĠ Ġfactory < UserRepository Contract > Ġ{ ĊĠĠĠĠĠĠĠ ĠUser Repository Impl ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsource Ġ= Ġget () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ internal Ġval Ġuser Modules Ġ= ĠlistOf ( ĊĠĠĠ Ġsource Module , ĊĠĠĠ Ġmapper Module , ĊĠĠĠ Ġuse Case Module , ĊĠĠĠ Ġrepository Module , ĊĠĠĠ Ġconverter Module Ċ )