package com.wdkl.ncs.android.middleware.di

import com.wdkl.ncs.android.middleware.logic.presenter.callingbed.*
import com.wdkl.ncs.android.middleware.logic.presenter.extra.ScanPresenter
import com.wdkl.ncs.android.middleware.logic.presenter.hello.HelloActivityPresenter
import com.wdkl.ncs.android.middleware.logic.presenter.hello.HelloListActivityPresenter
import com.wdkl.ncs.android.middleware.logic.presenter.home.CategoryFragmentPresenter
import com.wdkl.ncs.android.middleware.logic.presenter.home.HomeActivityPresenter
import com.wdkl.ncs.android.middleware.logic.presenter.home.HomeFragmentPresenter
import com.wdkl.ncs.android.middleware.logic.presenter.setting.SettingActivityPresenter
import com.wdkl.ncs.android.middleware.logic.presenter.shop.*
import com.wdkl.ncs.android.middleware.logic.presenter.welcome.WelcomePresenter
import dagger.Component


/**
 * @author LDD
 * @Date   2018/1/19 下午6:20
 * @From   com.wdkl.ncs.android.middleware.di
 * @Note   逻辑控制者依赖注入模块
 */
@Component(dependencies = arrayOf(ApplicationComponent::class))
interface PresenterComponent {

    fun inject(presenter: HomeFragmentPresenter)

    fun inject(presenter: HomeActivityPresenter)

    fun inject(presenter: WelcomePresenter)

    fun inject(presenter: CategoryFragmentPresenter)

    fun inject(presenter: SettingActivityPresenter)

    fun inject(presenter: ShopActivityPersenter)

    fun inject(presenter: ShopAllPersenter)

    fun inject(presenter: ShopHomePresenter)

    fun inject(presenter: ShopTagPresenter)

    fun inject(presenter: ShopListPersenter)

    fun inject(presenter: ShopCategoryActivityPresenter)

    fun inject(presenter: ShopInfoPresenter)

    fun inject(presenter: ScanPresenter)

    fun inject(presenter: HelloActivityPresenter)

    fun inject(presenter: HelloListActivityPresenter)

    //5寸分机
    fun inject(presenter: CallingbedActivityPresenter)

    fun inject(presenter: InitActivityPresenter)

    fun inject(presenter: AppUpdatePresenter)

    fun inject(presenter: MainFragmentPresenter)

    fun inject(presenter: DoctorOrderFragmentPresenter)

    fun inject(presenter: CostFragmentPresenter)

    fun inject(presenter: QrCodeFragmentPresenter)

    fun inject(presenter: SupportFragmentPresenter)

    fun inject(presenter: CallCareFragmentPresenter)

    fun inject(presenter: CallNurseFragmentPresenter)
}