package com.adealink.weparty.module.gift

import androidx.lifecycle.ViewModelStoreOwner
import com.adealink.frame.base.Rlt
import com.adealink.frame.startup.IAppStartUpTask
import com.adealink.weparty.aab.IService
import com.adealink.weparty.module.gift.data.GiftInfo
import com.adealink.weparty.module.gift.data.GiftResource
import com.adealink.weparty.module.gift.viewmodel.IGiftViewModel

interface IGiftService : IService<IGiftService>, IAppStartUpTask {

    fun getGiftViewModel(owner: ViewModelStoreOwner): IGiftViewModel?

    fun getGiftResource(forceNet: Boolean)

    fun getGifts(roomId: String, forceNet: Boolean)

    fun getGiftResource(resId: String): GiftResource?

    suspend fun getGift(roomId: String, giftId: String): Rlt<GiftInfo?>

    suspend fun getGifts(roomId: String, giftIds: Set<String>): Rlt<List<GiftInfo>>

}