package com.mycrib.android.viewmodel import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import com.mycrib.shared.models.TaskCompletion import com.mycrib.shared.models.TaskCompletionCreateRequest import com.mycrib.shared.network.ApiResult import com.mycrib.shared.network.TaskCompletionApi import com.mycrib.storage.TokenStorage import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.StateFlow import kotlinx.coroutines.launch class TaskCompletionViewModel : ViewModel() { private val taskCompletionApi = TaskCompletionApi() private val _createCompletionState = MutableStateFlow>(ApiResult.Loading) val createCompletionState: StateFlow> = _createCompletionState fun createTaskCompletion(request: TaskCompletionCreateRequest) { viewModelScope.launch { _createCompletionState.value = ApiResult.Loading val token = TokenStorage.getToken() if (token != null) { _createCompletionState.value = taskCompletionApi.createCompletion(token, request) } else { _createCompletionState.value = ApiResult.Error("Not authenticated", 401) } } } fun resetCreateState() { _createCompletionState.value = ApiResult.Loading } }