package com.bjca.hp.acupuncture.viewmodel import androidx.lifecycle.LiveData import androidx.lifecycle.MutableLiveData import com.bjca.hp.acupuncture.MyApplication import com.bjca.hp.acupuncture.model.ItemsItem2 import com.bjca.hp.acupuncture.model.ItemsItem3 import com.bjca.hp.acupuncture.model.ItemsItem5 import com.bjca.hp.acupuncture.model.ItemsItems import com.bjca.hp.acupuncture.repository.Service import com.xuqm.base.di.manager.HttpManager import com.xuqm.base.extensions.showMessage import com.xuqm.sdhbwfu.core.viewModel.BaseViewModel import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.schedulers.Schedulers /*************************************************************************** *

 * @文件名称:  WelcomeVM
 * @包   路   径:  com.bjca.hp.acupuncture.viewmodel
 * @版权所有:北京数字医信责任有限公司 (C) 2022
 *
 * @类描述:
 * @版本: V1.0
 * @创建人: xuqm
 * @创建时间:2022/6/17 下午 02:33
 * @修改记录:
 */
class MainVM : BaseViewModel() {


    private val _status = MutableLiveData()
    val status: LiveData = _status

    fun getRp(opNo:String = "CF220609004247" ) {
        HttpManager.getApi(MyApplication.appComponent1, Service::class.java)
            .rp(opNo)
            .subscribeOn(Schedulers.io())
            .observeOn(AndroidSchedulers.mainThread())
            .subscribe(
                {
                    _status.postValue(it.items[0])
                    rpDetail(it.items[0].opNo, it.items[0].no)
                    reg(it.items[0].opNo)
                }, {
                    _status.postValue(null)
                    showMessage(it.toString())
                }
            ).adds()
    }

    private val _rpDetail = MutableLiveData>()
    val rpDetail: LiveData> = _rpDetail

    fun rpDetail(opNo: String, rpNo: String) {
        HttpManager.getApi(MyApplication.appComponent1, Service::class.java)
            .rpDetail(opNo, rpNo)
            .subscribeOn(Schedulers.io())
            .observeOn(AndroidSchedulers.mainThread())
            .subscribe(
                {
                    _rpDetail.postValue(it.items)
                }, {
                    _rpDetail.postValue(null)
                    showMessage(it.toString())
                }
            ).adds()
    }

    private val _regM = MutableLiveData()
    val regM: LiveData = _regM
    fun reg(opNo: String) {
        HttpManager.getApi(MyApplication.appComponent1, Service::class.java)
            .reg(opNo)
            .subscribeOn(Schedulers.io())
            .observeOn(AndroidSchedulers.mainThread())
            .subscribe(
                {
                    _regM.postValue(it?.items?.get(0))
                }, {
                    _regM.postValue(null)
                    showMessage(it.toString())
                }
            ).adds()
    }

    private val _usages = MutableLiveData>()
    val usages: LiveData> = _usages
    fun drugUsage() {
        HttpManager.getApi(MyApplication.appComponent2, Service::class.java)
            .drugUsage()
            .subscribeOn(Schedulers.io())
            .observeOn(AndroidSchedulers.mainThread())
            .subscribe(
                {
                    _usages.postValue(it.items)
                }, {
                    _usages.postValue(null)
                    showMessage(it.toString())
                }
            ).adds()
    }

}