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(null) val selectedClient: StateFlow = _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 } } } }