package it.integry.integrywmsnative.gest.accettazione_ordini_picking;

import dagger.Module;
import dagger.Provides;
import it.integry.integrywmsnative.core.rest.consumers.ArticoloRESTConsumer;
import it.integry.integrywmsnative.core.rest.consumers.BarcodeRESTConsumer;
import it.integry.integrywmsnative.core.rest.consumers.ColliAccettazioneRESTConsumer;
import it.integry.integrywmsnative.core.rest.consumers.ColliLavorazioneRESTConsumer;
import it.integry.integrywmsnative.core.rest.consumers.ColliMagazzinoRESTConsumer;
import it.integry.integrywmsnative.core.rest.consumers.PrinterRESTConsumer;
import it.integry.integrywmsnative.core.rest.consumers.SystemRESTConsumer;
import it.integry.integrywmsnative.gest.accettazione_ordini_picking.rest.AccettazioneOrdiniPickingRESTConsumer;
import it.integry.integrywmsnative.view.bottom_sheet__lu_content.BottomSheetFragmentLUContentViewModel;

@Module(subcomponents = AccettazioneOrdiniPickingComponent.class)
public class AccettazioneOrdiniPickingModule {

    @Provides
    AccettazioneOrdiniPickingRESTConsumer providesAccettazionePickingRESTConsumer(SystemRESTConsumer systemRESTConsumer) {
        return new AccettazioneOrdiniPickingRESTConsumer(systemRESTConsumer);
    }

    @Provides
    BottomSheetFragmentLUContentViewModel providesBottomSheetFragmentLUContentViewModel() {
        return new BottomSheetFragmentLUContentViewModel();
    }

    @Provides
    AccettazioneOrdiniPickingViewModel providesAccettazioneViewModel(
            ArticoloRESTConsumer articoloRESTConsumer,
            BarcodeRESTConsumer barcodeRESTConsumer,
            ColliMagazzinoRESTConsumer colliMagazzinoRESTConsumer,
            PrinterRESTConsumer printerRESTConsumer,
            AccettazioneOrdiniPickingRESTConsumer accettazioneOrdiniPickingRESTConsumer,
            ColliAccettazioneRESTConsumer colliAccettazioneRESTConsumer,
            ColliLavorazioneRESTConsumer colliLavorazioneRESTConsumer) {
        return new AccettazioneOrdiniPickingViewModel(articoloRESTConsumer,
                barcodeRESTConsumer,
                colliMagazzinoRESTConsumer,
                printerRESTConsumer,
                accettazioneOrdiniPickingRESTConsumer,
                colliAccettazioneRESTConsumer,
                colliLavorazioneRESTConsumer);
    }

}
