This commit is contained in:
Rafal Wisniewski
2026-03-20 14:32:47 +01:00
parent f625a6975c
commit 96cdd056a0
16 changed files with 596 additions and 124 deletions

View File

@@ -9,16 +9,23 @@ import cc.n0th1ng.tripmoney.data.entity.Category
import cc.n0th1ng.tripmoney.data.entity.Expense
import cc.n0th1ng.tripmoney.data.entity.ExpenseDto
import cc.n0th1ng.tripmoney.data.repository.CategoryRepository
import cc.n0th1ng.tripmoney.data.repository.ExchangeRateRepository
import cc.n0th1ng.tripmoney.data.repository.ExpenseRepository
import cc.n0th1ng.tripmoney.service.ExchangeService
import cc.n0th1ng.tripmoney.utils.Currencies
import dagger.hilt.android.lifecycle.HiltViewModel
import io.ktor.client.request.get
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.flow
import kotlinx.coroutines.launch
import java.time.LocalDate
import javax.inject.Inject
@HiltViewModel
class ExpenseAndCategoryViewModel @Inject constructor(
private val expenseRepo: ExpenseRepository,
private val categoryRepo: CategoryRepository
private val categoryRepo: CategoryRepository,
private val exchangeRateRepository: ExchangeRateRepository
) : ViewModel() {
fun getExpenses(tripId: Int): Flow<PagingData<ExpenseDto>> =
@@ -43,4 +50,10 @@ class ExpenseAndCategoryViewModel @Inject constructor(
categoryRepo.save(category)
}
}
fun convertAmount(amount: Double, base: Currencies, target: Currencies, date: LocalDate): Flow<Double> {
return flow {
emit(amount * exchangeRateRepository.getRate(base, target, date))
}
}
}