package com.github.nullptroma.wallenc.app.di.modules.domain

import com.github.nullptroma.wallenc.app.sync.StorageSyncTaskTitleFormatter
import com.github.nullptroma.wallenc.domain.interfaces.IStorageSyncEngine
import com.github.nullptroma.wallenc.domain.tasks.IStorageSyncTaskTitleFormatter
import com.github.nullptroma.wallenc.usecases.StorageSyncEngine
import dagger.Binds
import dagger.Module
import dagger.hilt.InstallIn
import dagger.hilt.components.SingletonComponent
import javax.inject.Singleton

@Module
@InstallIn(SingletonComponent::class)
abstract class UseCasesModule {

    @Binds
    @Singleton
    abstract fun bindStorageSyncEngine(impl: StorageSyncEngine): IStorageSyncEngine

    @Binds
    @Singleton
    abstract fun bindStorageSyncTaskTitleFormatter(
        impl: StorageSyncTaskTitleFormatter,
    ): IStorageSyncTaskTitleFormatter
}
