package Ġcom . myapp . business . feature . bank . use case Ċ Ċ import Ġandroidx . lifecycle . Mutable LiveData Ċ import Ġcom . myapp . business . core . callback . Resource Ċ import Ġcom . myapp . business . core . callback . Single Live Event Ċ import Ġcom . myapp . business . core . use case . Base UseCase Ċ import Ġcom . myapp . business . core . use case . I UseCase Ċ import Ġcom . myapp . business . feature . bank . repository . Bank Repository Ċ import Ġcom . myapp . business . feature . common . Business Error ĊĊ Ċ interface ĠSubmit Loan UseCase Ġ: ĠI UseCase < String > Ġ{ ĊĠĠĠ Ġfun Ġbuild UseCase ( ĊĠĠĠĠĠĠĠ ĠphoneNumber : ĠString , ĠfullName : ĠString , ĊĠĠĠĠĠĠĠ Ġnational Id : ĠString , Ġprovince : ĠString , Ġmonthly Income : ĠString ĊĠĠĠ Ġ): ĠSubmit Loan UseCase Ċ } Ċ Ċ class ĠSubmit Loan UseCase Impl ( var Ġbank Repository : ĠBank Repository ) Ġ: ĠBase UseCase < String >(), ĊĠĠĠ ĠSubmit Loan UseCase Ġ{ ĊĊĠĠĠ Ġvar Ġsubmit Loan Result LiveData Ġ= ĠSingle Live Event < Resource < String >>() ĊĠĠĠ Ġoverride Ġfun Ġresult LiveData (): ĠMutable LiveData < Resource < String >> Ġ= Ġsubmit Loan Result LiveData ĊĊĠĠĠ Ġoverride Ġfun ĠonError ( e : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsubmit Loan Result LiveData . post Value ( Resource . error ( Business Error . GENERAL _ ERROR , Ġnull )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġbuild UseCase ( ĊĠĠĠĠĠĠĠ ĠphoneNumber : ĠString , ĊĠĠĠĠĠĠĠ ĠfullName : ĠString , ĊĠĠĠĠĠĠĠ Ġnational Id : ĠString , ĊĠĠĠĠĠĠĠ Ġprovince : ĠString , ĊĠĠĠĠĠĠĠ Ġmonthly Income : ĠString ĊĠĠĠ Ġ): ĠSubmit Loan UseCase Ġ{ ĊĠĠĠĠĠĠĠ Ġobservable Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbank Repository . submit Loan ( phoneNumber , ĠfullName , Ġnational Id , Ġprovince , Ġmonthly Income ) ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} Ċ }