Coverage Summary for Class: ProductsUseCases (com.imecatro.demosales.di)
| Class |
Class, %
|
Method, %
|
Branch, %
|
Line, %
|
Instruction, %
|
| ProductsUseCases |
0%
(0/1)
|
0%
(0/13)
|
|
0%
(0/13)
|
0%
(0/60)
|
package com.imecatro.demosales.di
import com.imecatro.demosales.domain.core.architecture.coroutine.CoroutineProvider
import com.imecatro.demosales.domain.core.files.FileInteractor
import com.imecatro.demosales.domain.products.repository.CategoriesRepository
import com.imecatro.demosales.domain.products.repository.ProductsRepository
import com.imecatro.demosales.domain.products.usecases.AddCategoryUseCase
import com.imecatro.demosales.domain.products.usecases.DeleteCategoryUseCase
import com.imecatro.demosales.domain.products.usecases.GetAllCategoriesUseCase
import com.imecatro.demosales.domain.products.usecases.UpdateCategoryUseCase
import com.imecatro.demosales.domain.products.usecases.GetProductsLikeUseCase
import com.imecatro.demosales.domain.products.usecases.AddStockUseCase
import com.imecatro.demosales.domain.products.usecases.ExportProductsCsvUseCase
import com.imecatro.demosales.domain.products.usecases.ExportStockHistoryCsvUseCase
import com.imecatro.demosales.domain.products.usecases.GetListOfCurrenciesUseCase
import com.imecatro.demosales.domain.products.usecases.GetListOfUnitsUseCase
import com.imecatro.demosales.domain.products.usecases.GetProductDetailsByIdUseCase
import com.imecatro.demosales.domain.products.usecases.RemoveFromStockUseCase
import com.imecatro.demosales.domain.products.usecases.SearchProductByBarcode
import com.imecatro.demosales.domain.sales.details.GetDetailsOfSaleByIdUseCase
import com.imecatro.demosales.domain.sales.list.repository.AllSalesRepository
import dagger.Module
import dagger.Provides
import dagger.hilt.InstallIn
import dagger.hilt.android.components.ViewModelComponent
import kotlinx.coroutines.CoroutineDispatcher
/**
* Hilt module for providing Use Case dependencies related to Products and Categories.
*/
@Module
@InstallIn(ViewModelComponent::class)
object ProductsUseCases {
/**
* Provides [GetAllCategoriesUseCase].
*/
@Provides
fun providesGetAllCategoriesUseCase(
categoriesRepository: CategoriesRepository,
coroutineDispatcher: CoroutineProvider
): GetAllCategoriesUseCase =
GetAllCategoriesUseCase(categoriesRepository, coroutineDispatcher)
/**
* Provides [AddCategoryUseCase].
*/
@Provides
fun providesAddCategoryUseCase(
categoriesRepository: CategoriesRepository,
coroutineDispatcher: CoroutineProvider
): AddCategoryUseCase =
AddCategoryUseCase(categoriesRepository, coroutineDispatcher)
/**
* Provides [UpdateCategoryUseCase].
*/
@Provides
fun providesUpdateCategoryUseCase(
categoriesRepository: CategoriesRepository,
coroutineDispatcher: CoroutineProvider
): UpdateCategoryUseCase =
UpdateCategoryUseCase(categoriesRepository, coroutineDispatcher)
/**
* Provides [DeleteCategoryUseCase].
*/
@Provides
fun providesDeleteCategoryUseCase(
categoriesRepository: CategoriesRepository,
coroutineDispatcher: CoroutineProvider
): DeleteCategoryUseCase =
DeleteCategoryUseCase(categoriesRepository, coroutineDispatcher)
/**
* Provides [AddStockUseCase].
*/
@Provides
fun providesAddStockUseCase(productsRepository: ProductsRepository) =
AddStockUseCase(productsRepository)
/**
* Provides [RemoveFromStockUseCase].
*/
@Provides
fun providesRemoveFromStockUseCase(productsRepository: ProductsRepository) =
RemoveFromStockUseCase(productsRepository)
/**
* Provides [GetListOfCurrenciesUseCase].
*/
@Provides
fun provideGetListOfCurrenciesUseCase(): GetListOfCurrenciesUseCase =
GetListOfCurrenciesUseCase()
/**
* Provides [GetListOfUnitsUseCase].
*/
@Provides
fun provideGetListOfUnitsUseCase(): GetListOfUnitsUseCase = GetListOfUnitsUseCase()
/**
* Provides [GetProductsLikeUseCase].
*/
@Provides
fun providesGetProductsLikeUseCase(productsRepository: ProductsRepository): GetProductsLikeUseCase {
return GetProductsLikeUseCase(productsRepository)
}
/**
* Provides [SearchProductByBarcode].
*/
@Provides
fun providesSearchProductByBarcode(productsRepository: ProductsRepository,ioDispatcher: CoroutineProvider) : SearchProductByBarcode {
return SearchProductByBarcode(productsRepository, ioDispatcher)
}
/**
* Provides [GetProductDetailsByIdUseCase].
*/
@Provides
fun providesGetProductDetailsByIdUseCase(
productsRepository: ProductsRepository,
ioDispatcher: CoroutineDispatcher
): GetProductDetailsByIdUseCase =
GetProductDetailsByIdUseCase(productsRepository, ioDispatcher)
/**
* Provides [ExportProductsCsvUseCase].
*/
@Provides
fun providesExportProductsCsvUseCase(
productsRepository: ProductsRepository,
fileInteractor: FileInteractor,
coroutineDispatcher: CoroutineProvider
): ExportProductsCsvUseCase =
ExportProductsCsvUseCase(productsRepository, fileInteractor, coroutineDispatcher)
/**
* Provides [ExportStockHistoryCsvUseCase].
*/
@Provides
fun providesExportStockHistoryCsvUseCase(
productsRepository: ProductsRepository,
fileInteractor: FileInteractor,
coroutineDispatcher: CoroutineProvider
): ExportStockHistoryCsvUseCase =
ExportStockHistoryCsvUseCase(productsRepository, fileInteractor, coroutineDispatcher)
}