This commit is contained in:
Rafal Wisniewski
2026-03-31 15:31:01 +02:00
parent 9b19b100e9
commit c4c9868698
37 changed files with 1539 additions and 475 deletions

View File

@@ -1,6 +1,7 @@
package cc.n0th1ng.tripmoney.data.dao
import androidx.room.Dao
import androidx.room.Delete
import androidx.room.Insert
import androidx.room.Query
import androidx.room.Transaction
@@ -14,12 +15,23 @@ interface CategoryDao {
suspend fun insert(category: Category)
@Delete
suspend fun delete(category: Category)
@Transaction
@Query(
"""
SELECT * FROM category
SELECT * FROM category WHERE archived is 0
"""
)
fun categories(): Flow<List<Category>>
@Transaction
@Query(
"""
SELECT * FROM category WHERE archived is 1
"""
)
fun archivedCategories(): Flow<List<Category>>
}

View File

@@ -16,22 +16,38 @@ interface ExpenseDao {
@Upsert
suspend fun insert(expense: Expense)
@Query(
"""
SELECT * FROM expense WHERE trip_id = :tripId
SELECT expense.*, category.*
FROM expense
JOIN category ON expense.category_id = category.id
WHERE expense.trip_id = :tripId
AND
(
(:filter IS NULL OR category.name LIKE '%' || :filter || '%')
OR (:filter IS NULL OR expense.note LIKE '%' || :filter || '%')
)
ORDER BY expense.datetime DESC
"""
"""
)
fun expenseDtoPaged(tripId: Int): PagingSource<Int, ExpenseDto>
fun expenseDtoPaged(tripId: Int, filter: String): PagingSource<Int, ExpenseDto>
@Transaction
@Query(
"""
SELECT * FROM expense WHERE trip_id = :tripId
SELECT * FROM expense
JOIN category ON expense.category_id = category.id
WHERE trip_id = :tripId
AND
(
(:filter IS NULL OR category.name LIKE '%' || :filter || '%')
OR (:filter IS NULL OR expense.note LIKE '%' || :filter || '%')
)
ORDER BY expense.datetime DESC
"""
)
fun expenseDto(tripId: Int): Flow<List<ExpenseDto>>
fun expenseDto(tripId: Int, filter: String): Flow<List<ExpenseDto>>
@Delete
suspend fun delete(expense: Expense)

View File

@@ -17,7 +17,7 @@ interface TripDao {
@Query(
"""
SELECT * FROM trip
ORDER BY DATE(trip.start_date) DESC
ORDER BY trip.start_date DESC
"""
)
fun tripsPaged(): PagingSource<Int, Trip>