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

import androidx.lifecycle.LiveData
import com.adealink.frame.base.Rlt
import com.adealink.weparty.module.profile.data.UserInfo

interface IProfileViewModel {

    val userInfoLD: LiveData<UserInfo?>

    fun pullUserInfoBy(uid: String, cache: Boolean)

    fun pullUserInoBy(uids: List<String>, cache: Boolean): LiveData<Rlt<Map<String, UserInfo>>>

    fun getUserInfoBy(uid: String): UserInfo?

    fun updateProfile(
        newAvatarPath: String? = null,
        newNickName: String? = null,
        newGender: Int? = null,
        newBirthday: String? = null,
    ): LiveData<Rlt<Any>>
}