package co.edu.udistrital.espingsw.huellitaspelitos;

import co.edu.udistrital.espingsw.huellitaspelitos.di.LocalDataSourceModule;
import co.edu.udistrital.espingsw.huellitaspelitos.di.RemoteDataSourceModule;
import co.edu.udistrital.espingsw.huellitaspelitos.di.RepositoryModule;
import co.edu.udistrital.espingsw.huellitaspelitos.di.UseCaseModule;
import co.edu.udistrital.espingsw.huellitaspelitos.di.ViewModelModule;
import co.edu.udistrital.espingsw.huellitaspelitos.ui.gallery.GalleryFragment_GeneratedInjector;
import co.edu.udistrital.espingsw.huellitaspelitos.ui.gallery.GalleryViewModel_HiltModules;
import co.edu.udistrital.espingsw.huellitaspelitos.ui.home.HomeFragment_GeneratedInjector;
import co.edu.udistrital.espingsw.huellitaspelitos.ui.home.HomeViewModel_HiltModules;
import co.edu.udistrital.espingsw.huellitaspelitos.ui.login.LoginActivity_GeneratedInjector;
import co.edu.udistrital.espingsw.huellitaspelitos.ui.login.LoginViewModel_HiltModules;
import co.edu.udistrital.espingsw.huellitaspelitos.ui.main.MainActivity_GeneratedInjector;
import co.edu.udistrital.espingsw.huellitaspelitos.ui.main.MainViewModel_HiltModules;
import co.edu.udistrital.espingsw.huellitaspelitos.ui.notifications.NotificationOptionsFragment_GeneratedInjector;
import co.edu.udistrital.espingsw.huellitaspelitos.ui.notifications.NotificationsOptionsViewModel_HiltModules;
import co.edu.udistrital.espingsw.huellitaspelitos.ui.pet.AddPetFragment_GeneratedInjector;
import co.edu.udistrital.espingsw.huellitaspelitos.ui.pet.AddPetViewModel_HiltModules;
import co.edu.udistrital.espingsw.huellitaspelitos.ui.pet.ConfirmDeletePetFragment_GeneratedInjector;
import co.edu.udistrital.espingsw.huellitaspelitos.ui.pet.ConfirmDeletePetViewModel_HiltModules;
import co.edu.udistrital.espingsw.huellitaspelitos.ui.pet.PetFragment_GeneratedInjector;
import co.edu.udistrital.espingsw.huellitaspelitos.ui.pet.PetViewModel_HiltModules;
import co.edu.udistrital.espingsw.huellitaspelitos.ui.petgroomingservices.ServicesFragment_GeneratedInjector;
import co.edu.udistrital.espingsw.huellitaspelitos.ui.petgroomingservices.ServicesViewModel_HiltModules;
import co.edu.udistrital.espingsw.huellitaspelitos.ui.serviceflow.estheticist.ContinueServiceForPetActivity_GeneratedInjector;
import co.edu.udistrital.espingsw.huellitaspelitos.ui.serviceflow.estheticist.EndServicesEstheticistActivity_GeneratedInjector;
import co.edu.udistrital.espingsw.huellitaspelitos.ui.serviceflow.estheticist.StartServicesActivity_GeneratedInjector;
import co.edu.udistrital.espingsw.huellitaspelitos.ui.serviceflow.estheticist.VisitCreatedByPetOwnerActivity_GeneratedInjector;
import co.edu.udistrital.espingsw.huellitaspelitos.ui.serviceflow.estheticist.viewmodel.ContinueServicesViewModel_HiltModules;
import co.edu.udistrital.espingsw.huellitaspelitos.ui.serviceflow.estheticist.viewmodel.EndServicesViewModel_HiltModules;
import co.edu.udistrital.espingsw.huellitaspelitos.ui.serviceflow.estheticist.viewmodel.StartServicesViewModel_HiltModules;
import co.edu.udistrital.espingsw.huellitaspelitos.ui.serviceflow.estheticist.viewmodel.VisitCreatedByPetOwnerViewModel_HiltModules;
import co.edu.udistrital.espingsw.huellitaspelitos.ui.services.PetForServicesFragment_GeneratedInjector;
import co.edu.udistrital.espingsw.huellitaspelitos.ui.userregistry.UserRegistryActivity_GeneratedInjector;
import co.edu.udistrital.espingsw.huellitaspelitos.ui.userregistry.UserRegistryViewModel_HiltModules;
import dagger.Binds;
import dagger.Component;
import dagger.Module;
import dagger.Subcomponent;
import dagger.hilt.android.components.ActivityComponent;
import dagger.hilt.android.components.ActivityRetainedComponent;
import dagger.hilt.android.components.FragmentComponent;
import dagger.hilt.android.components.ServiceComponent;
import dagger.hilt.android.components.ViewComponent;
import dagger.hilt.android.components.ViewModelComponent;
import dagger.hilt.android.components.ViewWithFragmentComponent;
import dagger.hilt.android.flags.FragmentGetContextFix;
import dagger.hilt.android.flags.HiltWrapper_FragmentGetContextFix_FragmentGetContextFixModule;
import dagger.hilt.android.internal.builders.ActivityComponentBuilder;
import dagger.hilt.android.internal.builders.ActivityRetainedComponentBuilder;
import dagger.hilt.android.internal.builders.FragmentComponentBuilder;
import dagger.hilt.android.internal.builders.ServiceComponentBuilder;
import dagger.hilt.android.internal.builders.ViewComponentBuilder;
import dagger.hilt.android.internal.builders.ViewModelComponentBuilder;
import dagger.hilt.android.internal.builders.ViewWithFragmentComponentBuilder;
import dagger.hilt.android.internal.lifecycle.DefaultViewModelFactories;
import dagger.hilt.android.internal.lifecycle.HiltViewModelFactory;
import dagger.hilt.android.internal.lifecycle.HiltWrapper_DefaultViewModelFactories_ActivityModule;
import dagger.hilt.android.internal.lifecycle.HiltWrapper_HiltViewModelFactory_ActivityCreatorEntryPoint;
import dagger.hilt.android.internal.lifecycle.HiltWrapper_HiltViewModelFactory_ViewModelModule;
import dagger.hilt.android.internal.managers.ActivityComponentManager;
import dagger.hilt.android.internal.managers.FragmentComponentManager;
import dagger.hilt.android.internal.managers.HiltWrapper_ActivityRetainedComponentManager_ActivityRetainedComponentBuilderEntryPoint;
import dagger.hilt.android.internal.managers.HiltWrapper_ActivityRetainedComponentManager_ActivityRetainedLifecycleEntryPoint;
import dagger.hilt.android.internal.managers.HiltWrapper_ActivityRetainedComponentManager_LifecycleModule;
import dagger.hilt.android.internal.managers.ServiceComponentManager;
import dagger.hilt.android.internal.managers.ViewComponentManager;
import dagger.hilt.android.internal.modules.ApplicationContextModule;
import dagger.hilt.android.internal.modules.HiltWrapper_ActivityModule;
import dagger.hilt.android.scopes.ActivityRetainedScoped;
import dagger.hilt.android.scopes.ActivityScoped;
import dagger.hilt.android.scopes.FragmentScoped;
import dagger.hilt.android.scopes.ServiceScoped;
import dagger.hilt.android.scopes.ViewModelScoped;
import dagger.hilt.android.scopes.ViewScoped;
import dagger.hilt.components.SingletonComponent;
import dagger.hilt.internal.GeneratedComponent;
import dagger.hilt.migration.DisableInstallInCheck;
import javax.inject.Singleton;

public final class HuellitasPelitosApp_HiltComponents {
  private HuellitasPelitosApp_HiltComponents() {
  }

  @Module(
      subcomponents = ServiceC.class
  )
  @DisableInstallInCheck
  abstract interface ServiceCBuilderModule {
    @Binds
    ServiceComponentBuilder bind(ServiceC.Builder builder);
  }

  @Module(
      subcomponents = ActivityRetainedC.class
  )
  @DisableInstallInCheck
  abstract interface ActivityRetainedCBuilderModule {
    @Binds
    ActivityRetainedComponentBuilder bind(ActivityRetainedC.Builder builder);
  }

  @Module(
      subcomponents = ActivityC.class
  )
  @DisableInstallInCheck
  abstract interface ActivityCBuilderModule {
    @Binds
    ActivityComponentBuilder bind(ActivityC.Builder builder);
  }

  @Module(
      subcomponents = ViewModelC.class
  )
  @DisableInstallInCheck
  abstract interface ViewModelCBuilderModule {
    @Binds
    ViewModelComponentBuilder bind(ViewModelC.Builder builder);
  }

  @Module(
      subcomponents = ViewC.class
  )
  @DisableInstallInCheck
  abstract interface ViewCBuilderModule {
    @Binds
    ViewComponentBuilder bind(ViewC.Builder builder);
  }

  @Module(
      subcomponents = FragmentC.class
  )
  @DisableInstallInCheck
  abstract interface FragmentCBuilderModule {
    @Binds
    FragmentComponentBuilder bind(FragmentC.Builder builder);
  }

  @Module(
      subcomponents = ViewWithFragmentC.class
  )
  @DisableInstallInCheck
  abstract interface ViewWithFragmentCBuilderModule {
    @Binds
    ViewWithFragmentComponentBuilder bind(ViewWithFragmentC.Builder builder);
  }

  @Component(
      modules = {
          ApplicationContextModule.class,
          HiltWrapper_FragmentGetContextFix_FragmentGetContextFixModule.class,
          ActivityRetainedCBuilderModule.class,
          ServiceCBuilderModule.class,
          LocalDataSourceModule.class,
          RemoteDataSourceModule.class,
          RepositoryModule.class,
          UseCaseModule.class
      }
  )
  @Singleton
  public abstract static class SingletonC implements HuellitasPelitosApp_GeneratedInjector,
      FragmentGetContextFix.FragmentGetContextFixEntryPoint,
      HiltWrapper_ActivityRetainedComponentManager_ActivityRetainedComponentBuilderEntryPoint,
      ServiceComponentManager.ServiceComponentBuilderEntryPoint,
      SingletonComponent,
      GeneratedComponent {
  }

  @Subcomponent
  @ServiceScoped
  public abstract static class ServiceC implements ServiceComponent,
      GeneratedComponent {
    @Subcomponent.Builder
    abstract interface Builder extends ServiceComponentBuilder {
    }
  }

  @Subcomponent(
      modules = {
          AddPetViewModel_HiltModules.KeyModule.class,
          ConfirmDeletePetViewModel_HiltModules.KeyModule.class,
          ContinueServicesViewModel_HiltModules.KeyModule.class,
          EndServicesViewModel_HiltModules.KeyModule.class,
          GalleryViewModel_HiltModules.KeyModule.class,
          HiltWrapper_ActivityRetainedComponentManager_LifecycleModule.class,
          HomeViewModel_HiltModules.KeyModule.class,
          ActivityCBuilderModule.class,
          ViewModelCBuilderModule.class,
          LoginViewModel_HiltModules.KeyModule.class,
          MainViewModel_HiltModules.KeyModule.class,
          NotificationsOptionsViewModel_HiltModules.KeyModule.class,
          PetViewModel_HiltModules.KeyModule.class,
          ServicesViewModel_HiltModules.KeyModule.class,
          StartServicesViewModel_HiltModules.KeyModule.class,
          UserRegistryViewModel_HiltModules.KeyModule.class,
          VisitCreatedByPetOwnerViewModel_HiltModules.KeyModule.class
      }
  )
  @ActivityRetainedScoped
  public abstract static class ActivityRetainedC implements ActivityRetainedComponent,
      ActivityComponentManager.ActivityComponentBuilderEntryPoint,
      HiltWrapper_ActivityRetainedComponentManager_ActivityRetainedLifecycleEntryPoint,
      GeneratedComponent {
    @Subcomponent.Builder
    abstract interface Builder extends ActivityRetainedComponentBuilder {
    }
  }

  @Subcomponent(
      modules = {
          HiltWrapper_ActivityModule.class,
          HiltWrapper_DefaultViewModelFactories_ActivityModule.class,
          FragmentCBuilderModule.class,
          ViewCBuilderModule.class
      }
  )
  @ActivityScoped
  public abstract static class ActivityC implements LoginActivity_GeneratedInjector,
      MainActivity_GeneratedInjector,
      ContinueServiceForPetActivity_GeneratedInjector,
      EndServicesEstheticistActivity_GeneratedInjector,
      StartServicesActivity_GeneratedInjector,
      VisitCreatedByPetOwnerActivity_GeneratedInjector,
      UserRegistryActivity_GeneratedInjector,
      ActivityComponent,
      DefaultViewModelFactories.ActivityEntryPoint,
      HiltWrapper_HiltViewModelFactory_ActivityCreatorEntryPoint,
      FragmentComponentManager.FragmentComponentBuilderEntryPoint,
      ViewComponentManager.ViewComponentBuilderEntryPoint,
      GeneratedComponent {
    @Subcomponent.Builder
    abstract interface Builder extends ActivityComponentBuilder {
    }
  }

  @Subcomponent(
      modules = {
          AddPetViewModel_HiltModules.BindsModule.class,
          ConfirmDeletePetViewModel_HiltModules.BindsModule.class,
          ContinueServicesViewModel_HiltModules.BindsModule.class,
          EndServicesViewModel_HiltModules.BindsModule.class,
          GalleryViewModel_HiltModules.BindsModule.class,
          HiltWrapper_HiltViewModelFactory_ViewModelModule.class,
          HomeViewModel_HiltModules.BindsModule.class,
          LoginViewModel_HiltModules.BindsModule.class,
          MainViewModel_HiltModules.BindsModule.class,
          NotificationsOptionsViewModel_HiltModules.BindsModule.class,
          PetViewModel_HiltModules.BindsModule.class,
          ServicesViewModel_HiltModules.BindsModule.class,
          StartServicesViewModel_HiltModules.BindsModule.class,
          UserRegistryViewModel_HiltModules.BindsModule.class,
          ViewModelModule.class,
          VisitCreatedByPetOwnerViewModel_HiltModules.BindsModule.class
      }
  )
  @ViewModelScoped
  public abstract static class ViewModelC implements ViewModelComponent,
      HiltViewModelFactory.ViewModelFactoriesEntryPoint,
      GeneratedComponent {
    @Subcomponent.Builder
    abstract interface Builder extends ViewModelComponentBuilder {
    }
  }

  @Subcomponent
  @ViewScoped
  public abstract static class ViewC implements ViewComponent,
      GeneratedComponent {
    @Subcomponent.Builder
    abstract interface Builder extends ViewComponentBuilder {
    }
  }

  @Subcomponent(
      modules = ViewWithFragmentCBuilderModule.class
  )
  @FragmentScoped
  public abstract static class FragmentC implements GalleryFragment_GeneratedInjector,
      HomeFragment_GeneratedInjector,
      NotificationOptionsFragment_GeneratedInjector,
      AddPetFragment_GeneratedInjector,
      ConfirmDeletePetFragment_GeneratedInjector,
      PetFragment_GeneratedInjector,
      ServicesFragment_GeneratedInjector,
      PetForServicesFragment_GeneratedInjector,
      FragmentComponent,
      DefaultViewModelFactories.FragmentEntryPoint,
      ViewComponentManager.ViewWithFragmentComponentBuilderEntryPoint,
      GeneratedComponent {
    @Subcomponent.Builder
    abstract interface Builder extends FragmentComponentBuilder {
    }
  }

  @Subcomponent
  @ViewScoped
  public abstract static class ViewWithFragmentC implements ViewWithFragmentComponent,
      GeneratedComponent {
    @Subcomponent.Builder
    abstract interface Builder extends ViewWithFragmentComponentBuilder {
    }
  }
}
