package Ġbr . com . sam ilar u ane . cart e ir av irtual . ui . register Ċ Ċ import Ġbr . com . sam ilar u ane . cart e ir av irtual . domain . account . Account Boundary Ċ import Ġbr . com . sam ilar u ane . cart e ir av irtual . domain . auth . Auth Boundary Ċ import Ġbr . com . sam ilar u ane . cart e ir av irtual . domain . entities . User Ċ import Ġbr . com . sam ilar u ane . cart e ir av irtual . domain . user . User Boundary Ċ import Ġjavax . inject . Inject Ċ Ċ class ĠRegister Interactor Ċ @ Inject Ġconstructor ( val Ġuser Business : ĠUser Boundary , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġauth Business : ĠAuth Boundary , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġaccount Business Ġ: ĠAccount Boundary ) Ġ: ĠRegister Contract . Interactor Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġcreate ( user : ĠUser ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġresult Ġ= Ġfalse ĊĊĠĠĠĠĠĠĠ Ġif (! user Business . user Exists ( user . phone )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġid Ġ= Ġuser Business . create ( user ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( id Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaccount Business . create Accounts To ( id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġresult ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġsend Token ( phoneNumber : ĠString ) Ġ= Ġauth Business . send Token ( phoneNumber ) ĊĊĠĠĠ Ġoverride Ġfun ĠgetToken (): ĠString Ġ= Ġauth Business . getToken () Ċ }