]> git.ktnx.net Git - mobile-ledger.git/blobdiff - app/src/main/java/net/ktnx/mobileledger/dao/TransactionDAO.java
more Room adoption - accounts@100%, some profiles/transactions
[mobile-ledger.git] / app / src / main / java / net / ktnx / mobileledger / dao / TransactionDAO.java
index 81c5df6744b7424f4a4b00bf7df661d29e33239d..485f65f10ecdce2ef5847bdc5bbefd35c22da3b2 100644 (file)
@@ -27,6 +27,7 @@ import androidx.room.Query;
 import androidx.room.Update;
 
 import net.ktnx.mobileledger.db.Transaction;
+import net.ktnx.mobileledger.db.TransactionWithAccounts;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -50,6 +51,9 @@ public abstract class TransactionDAO extends BaseDAO<Transaction> {
     @Delete
     public abstract void deleteSync(Transaction item);
 
+    @Delete
+    public abstract void deleteSync(List<Transaction> items);
+
     @Query("SELECT * FROM transactions")
     public abstract LiveData<List<Transaction>> getAll();
 
@@ -60,6 +64,10 @@ public abstract class TransactionDAO extends BaseDAO<Transaction> {
     @Query("SELECT * FROM transactions WHERE id = :id")
     public abstract LiveData<Transaction> getById(long id);
 
+    @androidx.room.Transaction
+    @Query("SELECT * FROM transactions WHERE id = :transactionId")
+    public abstract LiveData<TransactionWithAccounts> getByIdWithAccounts(long transactionId);
+
     @Query("SELECT DISTINCT description, CASE WHEN description_upper LIKE :term||'%%' THEN 1 " +
            "               WHEN description_upper LIKE '%%:'||:term||'%%' THEN 2 " +
            "               WHEN description_upper LIKE '%% '||:term||'%%' THEN 3 " +
@@ -68,6 +76,9 @@ public abstract class TransactionDAO extends BaseDAO<Transaction> {
            "ORDER BY ordering, description_upper, rowid ")
     public abstract List<DescriptionContainer> lookupDescriptionSync(@NonNull String term);
 
+    @Query("SELECT * from transactions WHERE profile_id = :profileId")
+    public abstract List<Transaction> allForProfileSync(long profileId);
+
     static public class DescriptionContainer {
         @ColumnInfo
         public String description;