import androidx.room.Update;
import net.ktnx.mobileledger.db.Transaction;
+import net.ktnx.mobileledger.db.TransactionWithAccounts;
import java.util.ArrayList;
import java.util.List;
@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();
@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 " +
"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;