cloudroam
2025-03-03 85a2d7f51a32cd747e27ab68bc8699a54419b6c7
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
package com.example.firstapp.ui.dashboard
 
import android.app.Application
import androidx.lifecycle.AndroidViewModel
import androidx.lifecycle.asLiveData
import androidx.lifecycle.viewModelScope
import com.example.firstapp.AppDatabase
import com.example.firstapp.model.PackageInfo
import com.example.firstapp.repository.PackageRepository
import kotlinx.coroutines.launch
 
class DashboardViewModel(application: Application) : AndroidViewModel(application) {
    
    private val repository: PackageRepository
    
    init {
        val packageDao = AppDatabase.getInstance(application).packageDao()
        repository = PackageRepository(packageDao)
    }
    
    fun getPackages(date: Long, dateType: String) = 
        repository.getPackages(date, dateType).asLiveData()
 
    fun getCourierStats(date: Long) = repository.getCourierStats(date).asLiveData()
    
    fun getDailyStats(date: Long) = repository.getDailyStats(date).asLiveData()
 
    fun updatePackageStatus(packageInfo: PackageInfo) = viewModelScope.launch {
        repository.update(packageInfo)
    }
 
    fun insert(packageInfo: PackageInfo) = viewModelScope.launch {
        repository.insert(packageInfo)
    }
}