package com.adealink.weparty.module.playmate.viewmodel

import androidx.lifecycle.LiveData
import com.adealink.frame.base.Rlt
import com.adealink.weparty.module.playmate.data.PlaymateBusinessData
import com.adealink.weparty.module.playmate.data.PlaymateCategoryConditionData
import com.adealink.weparty.module.playmate.data.PlaymateCategoryData
import com.adealink.weparty.module.playmate.data.PlaymateDetailData
import com.adealink.weparty.module.playmate.data.SkillSettingData
import com.adealink.weparty.module.playmate.data.UserPlaymateCategoryData

interface IPlaymateViewModel {

    val allCategoryLD: LiveData<List<PlaymateCategoryData>>

    val allCategoryConditionLD: LiveData<Map<String, PlaymateCategoryConditionData>>

    fun pullAllCategory()

    fun pullAllCategoryCondition()

    fun getUserPlaymateCategory(
        uid: String,
        cache: Boolean
    ): LiveData<Rlt<List<UserPlaymateCategoryData>>>

    fun loadPlaymateDetail(id: String?): LiveData<Rlt<PlaymateDetailData>>

    fun openBusiness(open: Boolean): LiveData<Rlt<Any>>

    fun getSkillSettingList(queryOpen: Boolean? = null): LiveData<Rlt<List<SkillSettingData>>>

    fun setBusinessTime(
        fromTime: String, //起始时间, 00:00
        toTime: String, //结束时间, 00:00
        weekDays: List<Int>
    ): LiveData<Rlt<Any>>

    fun getBusinessInfo(): LiveData<Rlt<PlaymateBusinessData>>

}