Files
financial-viewer/app/src/main/java/com/financialviewer/db/BankTransactionDao.kt

45 lines
2.0 KiB
Kotlin

package com.financialviewer.db
import androidx.room.Dao
import androidx.room.Delete
import androidx.room.Insert
import androidx.room.OnConflictStrategy
import androidx.room.Query
import androidx.room.Update
@Dao
interface BankTransactionDao {
@Insert(onConflict = OnConflictStrategy.REPLACE)
suspend fun insertBankTransaction(bankTransaction: BankTransaction)
@Update
suspend fun updateBankTransaction(bankTransaction: BankTransaction)
@Query("SELECT COUNT(*) FROM bank_Transactions")
suspend fun getRowCount(): Int
@Query("SELECT * FROM bank_Transactions WHERE refId = :refId")
suspend fun getBankTransactionById(refId: String): BankTransaction?
@Query("SELECT * FROM bank_Transactions ORDER BY date DESC LIMIT 1")
suspend fun getLastBankTransaction(): BankTransaction?
@Query("SELECT * FROM bank_Transactions WHERE date LIKE :year || '-%' ORDER BY date DESC")
suspend fun getAllBankTransactionsDesc(year: String): List<BankTransaction>
@Query("SELECT * FROM bank_Transactions WHERE date LIKE :year || '-%' AND category = :category ORDER BY date DESC")
suspend fun getBankTransactionsByCategoryDesc(year: String, category: String): List<BankTransaction>
@Query("SELECT * FROM bank_Transactions WHERE date LIKE :year || '-%' AND category IN (:categoryList) ORDER BY date DESC")
suspend fun getBankTransactionsByCategoryListDesc(year: String, categoryList: MutableList<String>): List<BankTransaction>
@Query("SELECT * FROM bank_Transactions WHERE date LIKE :year || '-' || :month || '%' ORDER BY date DESC")
suspend fun getBankTransactionsByMonthDesc(year: String, month: String): List<BankTransaction>
@Query("SELECT * FROM bank_Transactions WHERE date LIKE :year || '-' || :month || '%' AND category IN (:categoryList) ORDER BY date DESC")
suspend fun getBankTransactionsByMonthAndCategoryListDesc(year: String, month: String, categoryList: MutableList<String>): List<BankTransaction>
@Delete
suspend fun deleteBankTransaction(bankTransaction: BankTransaction)
}