package it.integry.integrywmsnative.gest.spedizione;

import dagger.Module;
import dagger.Provides;
import it.integry.integrywmsnative.core.data_recover.ColliDataRecoverService;
import it.integry.integrywmsnative.core.rest.consumers.ArticoloRESTConsumer;
import it.integry.integrywmsnative.core.rest.consumers.BarcodeRESTConsumer;
import it.integry.integrywmsnative.core.rest.consumers.ColliLavorazioneRESTConsumer;
import it.integry.integrywmsnative.core.rest.consumers.ColliMagazzinoRESTConsumer;
import it.integry.integrywmsnative.core.rest.consumers.ColliSpedizioneRESTConsumer;
import it.integry.integrywmsnative.core.rest.consumers.DocumentiRESTConsumer;
import it.integry.integrywmsnative.core.rest.consumers.MagazzinoAutomaticoRESTConsumer;
import it.integry.integrywmsnative.core.rest.consumers.OrdiniRESTConsumer;
import it.integry.integrywmsnative.core.rest.consumers.PosizioniRESTConsumer;
import it.integry.integrywmsnative.core.rest.consumers.PrinterRESTConsumer;
import it.integry.integrywmsnative.view.bottom_sheet__lu_content.BottomSheetFragmentLUContentViewModel;

@Module(subcomponents = SpedizioneComponent.class)
public class SpedizioneModule {

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

    @Provides
    SpedizioneViewModel providesSpedizioneViewModel(ArticoloRESTConsumer articoloRESTConsumer,
                                                    ColliDataRecoverService colliDataRecoverService,
                                                    OrdiniRESTConsumer ordiniRESTConsumer,
                                                    ColliMagazzinoRESTConsumer colliMagazzinoRESTConsumer,
                                                    PrinterRESTConsumer printerRESTConsumer,
                                                    BarcodeRESTConsumer barcodeRESTConsumer,
                                                    PosizioniRESTConsumer posizioniRESTConsumer,
                                                    DocumentiRESTConsumer documentiRESTConsumer,
                                                    ColliSpedizioneRESTConsumer colliSpedizioneRESTConsumer,
                                                    ColliLavorazioneRESTConsumer colliLavorazioneRESTConsumer,
                                                    MagazzinoAutomaticoRESTConsumer magazzinoAutomaticoRESTConsumer) {
        return new SpedizioneViewModel(articoloRESTConsumer,
                barcodeRESTConsumer,
                colliDataRecoverService,
                ordiniRESTConsumer,
                colliMagazzinoRESTConsumer,
                printerRESTConsumer,
                posizioniRESTConsumer,
                documentiRESTConsumer,
                colliSpedizioneRESTConsumer,
                colliLavorazioneRESTConsumer,
                magazzinoAutomaticoRESTConsumer);
    }

}
