package es.verdnatura.di

import es.verdnatura.presentation.view.feature.ajustes.fragment.AjustesViewModel
import es.verdnatura.presentation.view.feature.articulo.fragment.ItemCardViewModel
import es.verdnatura.presentation.view.feature.buffer.fragment.BufferFragmentViewModel
import es.verdnatura.presentation.view.feature.buscaritem.fragment.BuscarItemViewModel
import es.verdnatura.presentation.view.feature.calidad.fragment.BuyersViewModel
import es.verdnatura.presentation.view.feature.calidad.fragment.QaualityViewModel
import es.verdnatura.presentation.view.feature.claim.fragment.ClaimViewModel
import es.verdnatura.presentation.view.feature.collection.fragment.CollectionViewModel
import es.verdnatura.presentation.view.feature.controlador.fragment.ControladorViewModel
import es.verdnatura.presentation.view.feature.controlvehiculo.fragment.ControlVehiculoViewModel
import es.verdnatura.presentation.view.feature.diadeventa.fragment.DayOfSaleViewModel
import es.verdnatura.presentation.view.feature.faltas.fragment.FaltasViewModel
import es.verdnatura.presentation.view.feature.historicoarticulo.fragment.HistoricoArticuloViewModel
import es.verdnatura.presentation.view.feature.historicoshelving.fragment.itemShelvingLogViewModel
import es.verdnatura.presentation.view.feature.historicoshelvinglog.fragment.shelvingLogViewModel
import es.verdnatura.presentation.view.feature.historicovehiculo.fragment.HistoricoVehiculoViewModel
import es.verdnatura.presentation.view.feature.inventario.fragment.InventaryViewModel
import es.verdnatura.presentation.view.feature.login.fragment.LoginViewModel
import es.verdnatura.presentation.view.feature.paletizador.fragment.*
import es.verdnatura.presentation.view.feature.parking.fragment.ParkingViewModel
import es.verdnatura.presentation.view.feature.pasillero.fragment.PasilleroViewModel
import es.verdnatura.presentation.view.feature.precontrol.ShowTicketViewModel
import es.verdnatura.presentation.view.feature.presacador.fragment.PreSacadorViewModel
import es.verdnatura.presentation.view.feature.qr.QrFragmentViewModel
import es.verdnatura.presentation.view.feature.reposicion.fragment.ReposicionViewModel
import es.verdnatura.presentation.view.feature.sacador.fragment.SacadorViewModel
import es.verdnatura.presentation.view.feature.shelvingparking.fragment.ShelvingParkingViewModel
import es.verdnatura.presentation.view.feature.smarttag.sacador.fragment.SmartTagsViewModel
import es.verdnatura.presentation.view.feature.ubicador.fragment.AutomaticAddItemViewModel
import es.verdnatura.presentation.view.feature.ubicador.fragment.UbicadorViewModel
import es.verdnatura.presentation.view.feature.workermistake.fragment.WorkermistakeViewModel
import org.koin.android.ext.koin.androidContext
import org.koin.androidx.viewmodel.dsl.viewModel
import org.koin.dsl.module

val viewModelModule = module {


    viewModel{
        WorkermistakeViewModel(androidContext())
    }

    // Login
    viewModel {
        LoginViewModel(androidContext())
    }

    // Pasilleros
    viewModel {
        PasilleroViewModel(androidContext())
    }
    //Pasilleros Dia de venta
    viewModel {
        DayOfSaleViewModel(androidContext())
    }

    // Pasilleros / Item Card
    viewModel {
        ItemCardViewModel(androidContext())
    }

    // Pasilleros / Item Card / Historico
    viewModel {
        HistoricoArticuloViewModel(androidContext())
    }

    // Pasilleros / Buscar Item
    viewModel {
        BuscarItemViewModel(androidContext())
    }

    // Pasilleros / Buscar Item 2

    viewModel {
        ShowTicketViewModel(androidContext())
    }

    // Pasilleros / Inventario
    viewModel {
        InventaryViewModel(androidContext())
    }
    // Pasilleros / Faltas
    viewModel {
        FaltasViewModel(androidContext())
    }

    // ShelvingParking
    viewModel {
        ShelvingParkingViewModel(androidContext())
    }

    // Ubicador
    viewModel {
        UbicadorViewModel(androidContext())
    }

    // Ubicador // Automatic
    viewModel {
        AutomaticAddItemViewModel(androidContext())
    }

    // Ajustes
    viewModel {
        AjustesViewModel(androidContext())
    }

    // PALETIZADOR

    viewModel {
        ExpeditionScanSorterViewModel(androidContext())
    }


    viewModel {
        CmrExpeditionPalletViewModel(androidContext())
    }

    viewModel {
        BufferFragmentViewModel(androidContext())
    }

    viewModel {
        ExpeditionStateViewModel(androidContext())
    }

    viewModel {
        ExpeditionTruckListViewModel(androidContext())
    }

    viewModel {
        ExpeditionPalletViewModel(androidContext())
    }

    viewModel {
        ExpeditionPalletDetailViewModel(androidContext())
    }

    viewModel {
        ExpeditionScanViewModel(androidContext())
    }
    viewModel {
        QrFragmentViewModel(androidContext())
    }

    // SACADOR
    viewModel {
        SacadorViewModel(androidContext())
    }

    viewModel {
        CollectionViewModel(androidContext())
    }

    viewModel {
        ControladorViewModel(androidContext())
    }

    viewModel {
        ParkingViewModel(androidContext())
    }

    viewModel {
        PreSacadorViewModel(androidContext())
    }

    viewModel {
        ReposicionViewModel(androidContext())
    }

    viewModel {
        BuyersViewModel(androidContext())
    }

    viewModel {
        QaualityViewModel(androidContext())
    }

    viewModel {
        ControlVehiculoViewModel(androidContext())
    }

    viewModel {
        HistoricoVehiculoViewModel(androidContext())
    }
    viewModel {
        SmartTagsViewModel(androidContext())
    }
    viewModel {
    itemShelvingLogViewModel(androidContext())
    }
    viewModel {
        shelvingLogViewModel(androidContext())
    }
    viewModel {
        ClaimViewModel(androidContext())
    }

    viewModel {
        PalletScanViewModel(androidContext())
    }

}