package com.idormy.sms.forwarder.database.dao import androidx.paging.PagingSource import androidx.room.* import com.idormy.sms.forwarder.database.entity.Sender import io.reactivex.Completable import io.reactivex.Single import kotlinx.coroutines.flow.Flow @Dao interface SenderDao { @Insert fun insert(sender: Sender) @Delete fun delete(sender: Sender): Completable @Query("DELETE FROM Sender where id=:id") fun delete(id: Long) @Update fun update(sender: Sender) @Query("SELECT * FROM Sender where id=:id") fun get(id: Long): Single @Query("SELECT count(*) FROM Sender where type=:type and status=:status") fun count(type: String, status: Int): Single @Query("SELECT * FROM Sender where status=:status ORDER BY id DESC") fun pagingSource(status: Int): PagingSource @Query("SELECT * FROM sender ORDER BY id DESC") fun getAll(): Single> @Query("SELECT COUNT(id) FROM sender WHERE status = 1") fun getOnCount(): Flow //TODO:允许主线程访问,后面再优化 @Query("SELECT * FROM sender ORDER BY id ASC") fun getAll2(): List @Query("DELETE FROM Sender") fun deleteAll() }