Files
gestionClientsAndroid/app/src/main/java/com/sio/gestionclients/viewmodel/LocalClientViewModel.kt

49 lines
1.4 KiB
Kotlin

package com.sio.gestionclients.viewmodel
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
import com.sio.gestionclients.data.local.entities.Client
import com.sio.gestionclients.data.repository.LocalClientRepository
import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.StateFlow
import kotlinx.coroutines.launch
class LocalClientViewModel(
private val repository: LocalClientRepository
) : ViewModel() {
private val _selectedClient = MutableStateFlow<Client?>(null)
val selectedClient: StateFlow<Client?> = _selectedClient
val clients = repository.getAllClients()
fun addClient(client: Client) {
viewModelScope.launch {
repository.addClient(client)
}
}
fun selectClient(numero: Long) {
viewModelScope.launch {
_selectedClient.value = repository.getClientByNumero(numero)
}
}
fun updateSelectedClient() {
viewModelScope.launch {
_selectedClient.value?.let { client ->
repository.updateClient(client)
_selectedClient.value = null
}
}
}
fun deleteSelectedClient() {
viewModelScope.launch {
_selectedClient.value?.let { client ->
repository.deleteClient(client)
_selectedClient.value = null
}
}
}
}