package com.ym.library.router

import android.content.Intent
import com.ym.commen.router.RounterParam
import com.ym.commen.router.RounterUri
import com.ym.library.Constant

/**
 * Created by gaoleichao on 2018/12/8.
 */
interface RounterApi {

    @RounterUri(Constant.scheme + "://login")
    fun getIntentActivityLogin(): Intent

    @RounterUri(Constant.scheme + "://local_login")
    fun getIntentActivityLocalLogin(): Intent

//    @RounterUri(Constant.scheme + "://web")
//    fun getIntentActivityAdWeb(
//        @RounterParam("title") title: String,
//        @RounterParam("url") url: String
//    ): Intent

    @RounterUri(Constant.scheme + "://web")
    fun getIntentActivityWeb(
        @RounterParam("title") title: String,
        @RounterParam("url") url: String,
        @RounterParam("showToolbar") showToolbar: Boolean
    ): Intent

    @RounterUri(Constant.scheme + "://adshare")
    fun getIntentActivityAdShare(@RounterParam("data") data: String): Intent

    @RounterUri(Constant.scheme + "://invite_code")
    fun getIntentActivityInviteCode(): Intent

    @RounterUri(Constant.scheme + "://read_and_timer")
    fun getIntentActivityRead(@RounterParam("type") type: String): Intent

    @RounterUri(Constant.scheme + "://click_ad")
    fun getIntentActivityTaskNav(@RounterParam("type") type: String): Intent

    @RounterUri(Constant.scheme + "://wechat_share")
    fun getIntentActivityAdShareList(): Intent

    @RounterUri(Constant.scheme + "://collect")
    fun getIntentActivityCollect(): Intent

    @RounterUri(Constant.scheme + "://news_history")
    fun getIntentActivityNewsHistory(): Intent

    @RounterUri(Constant.scheme + "://setting")
    fun getIntentActivitySetting(): Intent

    @RounterUri(Constant.scheme + "://message")
    fun getIntentActivityMessage(): Intent

    @RounterUri(Constant.scheme + "://news_detail")
    fun getIntentActivityNewsDatail(
        @RounterParam("title") title: String,
        @RounterParam("url") url: String,
        @RounterParam("shareUrl") shareUrl: String,
        @RounterParam("images") images: String,
        @RounterParam("tabid") tabid: String
    ): Intent

    @RounterUri(Constant.scheme + "://video_detail")
    fun getIntentActivityVideoDatail(
        @RounterParam("videoId") videoId: String,
        @RounterParam("url") url: String,
        @RounterParam("isV2") isV2: String,
        @RounterParam("image") image: String,
        @RounterParam("from") from: String
    ): Intent

    @RounterUri(Constant.scheme + "://choice_city")
    fun getIntentActivityChoiceCity(): Intent

    @RounterUri(Constant.scheme + "://new_user_withdraw")
    fun getIntentActivityNewUserWithdraw(): Intent

    @RounterUri(Constant.scheme + "://withdraw")
    fun getIntentActivityWithdraw(): Intent

    @RounterUri(Constant.scheme + "://splash")
    fun getIntentActivitySplash(): Intent

    @RounterUri(Constant.scheme + "://main")
    fun getIntentActivityMain(): Intent

    @RounterUri(Constant.scheme + "://redpackage")
    fun getIntentActivityRedPackage(): Intent

    @RounterUri(Constant.scheme + "://feedback")
    fun getIntentActivityFeedBack(): Intent

    @RounterUri(Constant.scheme + "://videoplay")
    fun getIntentActivityVideoPlay(
        @RounterParam("url") url: String,
        @RounterParam("albumId") albumId: String
        ,
        @RounterParam("id") id: String,
        @RounterParam("title") title: String,
        @RounterParam("pid") pid: String,
        @RounterParam(
            "cChannel"
        ) cChannel: String
    ): Intent

    @RounterUri(Constant.scheme + "://audioplay")
    fun getIntentActivityAudioPlay(
        @RounterParam("url") url: String,
        @RounterParam("albumId") albumId: String
        ,
        @RounterParam("id") id: String,
        @RounterParam("title") title: String,
        @RounterParam("pid") pid: String,
        @RounterParam("cChannel") cChannel: String,
        @RounterParam("jumpTag") jumpTag: String
    ): Intent

    @RounterUri(Constant.scheme + "://search")
    fun getIntentActivitySearch(): Intent

    @RounterUri(Constant.scheme + "://history")
    fun getIntentActivityHistory(): Intent


    @RounterUri(Constant.scheme + "://starlist")
    fun getIntentActivityStarList(
        @RounterParam("CChannel") url: String,
        @RounterParam("pid") albumId: String,
        @RounterParam("albumId") id: String,
        @RounterParam("name") name: String

    ): Intent

    @RounterUri(Constant.scheme + "://gather")
    fun getIntentActivityGather(
        @RounterParam("CChannel") url: String,
        @RounterParam("pid") albumId: String,
        @RounterParam("albumId") id: String,

        @RounterParam("description") description: String,
        @RounterParam("area") area: String,
        @RounterParam("tvYear") tvYear: String,
        @RounterParam("score") score: String,
        @RounterParam("contentType") contentType: String,
        @RounterParam("name") name: String,
        @RounterParam("image") image: String,
        @RounterParam("topVisibleFlag") topVisibleFlag: Boolean,
        @RounterParam("availableMediaNum") availableMediaNum: String,
        @RounterParam("playCnt") playCnt: String

    ): Intent


    @RounterUri(Constant.scheme + "://web")
    fun getIntentWeb(@RounterParam("url") url: String, @RounterParam("title") title: String): Intent

    @RounterUri(Constant.scheme + "://baidu_video")
    fun getIntentBaiduVideo(@RounterParam("url") url: String): Intent

    @RounterUri(Constant.scheme + "://withdrawcash")
    fun getWithDrawCash(): Intent

    @RounterUri(Constant.scheme + "://dialogpermission")
    fun getDialogPermission(): Intent

    @RounterUri(Constant.scheme + "://luckydraw")
    fun getIntentLuckyDraw(): Intent


    @RounterUri(Constant.scheme + "://dimond_crash")
    fun getIntentDimoneCrash(): Intent

    @RounterUri(Constant.scheme + "://task_crash")
    fun getIntentTaskCrash(): Intent

    @RounterUri(Constant.scheme + "://coin_crash")
    fun getIntentCoinCrash(): Intent


    @RounterUri(Constant.scheme + "://slotmachine")
    fun getIntentSlotMachine(): Intent

    @RounterUri(Constant.scheme + "://incomingtelegram")
    fun getIntentIncomingTelegram(): Intent

    @RounterUri(Constant.scheme + "://scraping_card")
    fun getIntentScratchCard(): Intent

    @RounterUri(Constant.scheme + "://double_color")
    fun getIntentDoubleColor(@RounterParam("ifnex") ifnex: Boolean): Intent

    @RounterUri(Constant.scheme + "://run_lottery")
    fun getIntentRunLottery(): Intent

    @RounterUri(Constant.scheme + "://soundsearch")
    fun getIntentSoundSearch(): Intent

    @RounterUri(Constant.scheme + "://shave")
    fun getIntentShave(): Intent

    @RounterUri(Constant.scheme + "://task")
    fun getIntentTask(): Intent

    @RounterUri(Constant.scheme + "://gold_details")
    fun getIntentGoldDetails(): Intent

    @RounterUri(Constant.scheme + "://clockinwithdraw")
    fun getIntentClockInWithdraw(): Intent

    @RounterUri(Constant.scheme + "://welfare")
    fun getIntentWelfare(): Intent

    @RounterUri(Constant.scheme + "://xiaoman")
    fun getIntentXiaoMan(@RounterParam("title") title: String): Intent

    //    intent.putExtra("url", url)
//    intent.putExtra("title", title)
//    intent.putExtra("slot_id", slot_id)
//    intent.putExtra("sid", sid)
    @RounterUri(Constant.scheme + "://new_web")
    fun getIntentReadH5(
        @RounterParam("url") url: String,
        @RounterParam("title") title: String,
        @RounterParam("slot_id") slot_id: String,
        @RounterParam(
            "sid"
        ) sid: String
    ): Intent

    @RounterUri(Constant.scheme + "://ad_web")
    fun getIntentAdWeb(
        @RounterParam("incentive_level") incentive_level: String,
        @RounterParam("alert") alert: String,
        @RounterParam("alertRenderType") alertRenderType: String,
        @RounterParam("timeTrigger") timeTrigger: String,
        @RounterParam("delay") delay: String,
        @RounterParam("deep_url_re") deep_url_re: String,
        @RounterParam("url") url: String,
        @RounterParam("title") title: String,
        @RounterParam("slot_id") slot_id: String,
        @RounterParam("sid") sid: String
    ): Intent

    @RounterUri(Constant.scheme + "://slot_machine_record")
    fun getIntentSlotMachineRecord(): Intent

    @RounterUri(Constant.scheme + "://setting")
    fun getIntentSetting(): Intent

    @RounterUri(Constant.scheme + "://withdrawals_record")
    fun getIntentSWithdrawalsRecord(): Intent
}