package com.example.firstapp.database.repository
|
|
import androidx.annotation.WorkerThread
|
import com.example.firstapp.database.dao.CodeDao
|
import com.example.firstapp.database.entity.Code
|
import kotlinx.coroutines.Dispatchers
|
import kotlinx.coroutines.flow.Flow
|
import kotlinx.coroutines.withContext
|
|
|
class CodeRepository(private val codeDao: CodeDao) {
|
|
@WorkerThread
|
fun insert(code: Code): Long = codeDao.insert(code)
|
|
@WorkerThread
|
fun delete(id: Long) = codeDao.delete(id)
|
|
fun getAll() = codeDao.getAllCodes()
|
|
fun getAllDesc() = codeDao.getAllCodesDesc()
|
|
@WorkerThread
|
fun getByKeyword(keyword: String): List<Code> {
|
return codeDao.getByKeyword(keyword)
|
}
|
|
fun queryByTypeAndCodeAndDate(content: String, code: String, dateString: String): Code {
|
return codeDao.queryByTypeAndCodeAndDate(content, code, dateString)
|
}
|
|
@WorkerThread
|
fun pickup(id: Long) = codeDao.pickup(id)
|
|
|
fun getPackages(date: Long, dateType: String): Flow<List<Code>> {
|
return when (dateType) {
|
"DAY" -> codeDao.getPackagesByDay(date)
|
"WEEK" -> codeDao.getPackagesByWeek(date)
|
else -> codeDao.getPackagesByDay(date)
|
}
|
}
|
|
fun getCourierStats(date: Long) = codeDao.getCourierStatsByWeek(date)
|
|
fun getDailyStats(date: Long) = codeDao.getDailyStatsByWeek(date)
|
|
|
@WorkerThread
|
fun getPackagesByDay(date: Long): List<Code> {
|
return codeDao.getNewPackagesByDay(date)
|
}
|
|
|
}
|