package com.adealink.weparty.module.profile.viewmodel

import androidx.lifecycle.LiveData
import com.adealink.frame.base.Rlt
import com.adealink.frame.mvvm.livedata.ExtLiveData
import com.adealink.weparty.module.profile.data.FollowStatus

interface IFollowViewModel {

    val isFollowLD: ExtLiveData<Map<String, FollowStatus>>

    val followCountLD: ExtLiveData<Long>

    val fansCountLD: ExtLiveData<Long>

    fun isFollow(uid: String): LiveData<Rlt<FollowStatus>>

    fun isFollow(uids: List<String>): LiveData<Rlt<Map<String, FollowStatus>>>

    fun follow(uid: String, checkEachFollow: Boolean = false): LiveData<Rlt<FollowStatus>>

    fun unFollow(uid: String, checkEachFollow: Boolean = false): LiveData<Rlt<FollowStatus>>

    fun getFollowCount()

    fun getFansCount()
}