package llc.arma.ble.app.framework.di

import dagger.Binds
import dagger.Module
import dagger.hilt.InstallIn
import dagger.hilt.components.SingletonComponent
import llc.arma.ble.data.repository.BleNameRepositoryImpl
import llc.arma.ble.data.repository.BleRepositoryImpl
import llc.arma.ble.data.repository.EmailRepositoryImpl
import llc.arma.ble.data.repository.RotationsRepositoryImpl
import llc.arma.ble.data.repository.SettingsRepositoryImpl
import llc.arma.ble.data.repository.XlsxRepositoryImpl
import llc.arma.ble.domain.repository.BleNameRepository
import llc.arma.ble.domain.repository.BleRepository
import llc.arma.ble.domain.repository.EmailRepository
import llc.arma.ble.domain.repository.RotationsRepository
import llc.arma.ble.domain.repository.SettingsRepository
import llc.arma.ble.domain.repository.XlsxRepository

@Module
@InstallIn(SingletonComponent::class)
interface RepositoryBinding {

    @Binds
    fun bindBleRepository(bleRepositoryImpl: BleRepositoryImpl): BleRepository

    @Binds
    fun bindEmailRepository(repository: EmailRepositoryImpl): EmailRepository

    @Binds
    fun bindRotationsRepository(repository: RotationsRepositoryImpl): RotationsRepository

    @Binds
    fun bindBleNamesRepository(repository: BleNameRepositoryImpl): BleNameRepository

    @Binds
    fun bindXlsxRepository(repository: XlsxRepositoryImpl): XlsxRepository

    @Binds
    fun bindSettingsRepository(repository: SettingsRepositoryImpl): SettingsRepository

}