package es.verdnatura.presentation.view.feature.ubicador.fragment

import android.content.Context
import androidx.lifecycle.LiveData
import androidx.lifecycle.MutableLiveData
import es.verdnatura.domain.SilexCallback
import es.verdnatura.presentation.base.BaseViewModel
import es.verdnatura.presentation.base.getMessageFromAllResponse
import es.verdnatura.presentation.base.nameofFunction
import es.verdnatura.presentation.common.ResponseItemVO
import retrofit2.Response

class AutomaticAddItemViewModel(val context: Context) : BaseViewModel(context) {

    private val _response by lazy { MutableLiveData<ResponseItemVO>() }
    val response: LiveData<ResponseItemVO>
        get() = _response


    fun itemShelvingMake_multi(
        shelving: String,
        items: List<Long>,
        warehouse: Int
    ) {
        silex.itemShelvingMake_multi(shelving, items, warehouse)
            .enqueue(object :
                SilexCallback<Any>(context) {
                override fun onError(t: Throwable) {
                    _response.value = ResponseItemVO(
                        isError = true, errorMessage = getMessageFromAllResponse(
                            nameofFunction(this), t.message!!
                        )
                    )
                }

                override fun onSuccess(response: Response<Any>) {

                    _response.value =
                        ResponseItemVO(isError = false, response = response.message()!!)

                }
            })
    }

    fun itemShelving_addList(
        shelving: String,
        items: Any,
        isChecking: Boolean,
        warehouse: Int
    ) {
        silex.itemShelving_addList(
            shelving,
            items,
            isChecking,
            warehouse
        ).enqueue(object :
            SilexCallback<Any>(context) {
            override fun onError(t: Throwable) {
                _response.value = ResponseItemVO(
                    isError = true, errorMessage = getMessageFromAllResponse(
                        nameofFunction(this), t.message!!
                    )
                )
            }

            override fun onSuccess(response: Response<Any>) {
                _response.value =
                    ResponseItemVO(isError = false, response = response.message()!!)

            }
        })
    }


}
