package com.gh.gamecenter.forum.home.follow.eventlistener

import com.gh.gamecenter.common.entity.LinkEntity
import com.gh.gamecenter.entity.FollowUserEntity
import com.gh.gamecenter.feature.entity.ArticleEntity
import com.gh.gamecenter.feature.entity.ConcernEntity
import com.gh.gamecenter.feature.entity.GameEntity
import com.gh.gamecenter.feature.entity.LibaoEntity
import com.gh.gamecenter.feature.exposure.ExposureEvent
import com.gh.gamecenter.home.custom.model.CustomPageData

interface OnFollowHomeEventListener {

    fun viewItemFollowed(position: Int, data: List<FollowUserEntity>)

    fun viewAllFollowed()

    fun login()

    fun followUser(userId: String, isFollow: Boolean)
    fun navigateToLinkPageInCommonContent(
        position: Int,
        link: LinkEntity,
        data: CustomPageData.CommonContentCollection,
        text: String,
        exposureEvent: ExposureEvent?
    )

    fun navigateToGameDetailPage(position: Int, game: GameEntity, text: String)

    fun navigateToCommonCollectionDetailPage(data: CustomPageData.CommonContentCollection)

    fun navigateToUserHomePage(userId: String)

    fun onPostCardClick(position: Int, article: ArticleEntity)

    fun navigateToLibaoDetailPage(libaoEntity: LibaoEntity)

    fun navigateToNewsDetailPage(articleId: String)

    fun navigateToArticleCommentDetailPage(articleId: String)

    fun onShareArticle(concernEntity: ConcernEntity)

    fun copyExchangeCode(code: String)

}