package com.zxhl.cms.router

import android.content.Intent
import com.zxhl.cms.common.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,
        @RounterParam("delay") delay: Int,
        @RounterParam("sid") sid: Int,
        @RounterParam("deep_url_re") deep_url_re: String,
        @RounterParam("incentive_level") incentive_level: Int,
        @RounterParam("alert") alert: String,
        @RounterParam("slot_id") slot_id: String,
        @RounterParam("timeTrigger") timeTrigger: String
    ): Intent

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

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

    @RounterUri(Constant.scheme + "://h5")
    fun getIntentActivityH5(
        @RounterParam("url") url: String
    ): 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 + "://video_clips")
    fun getIntentActivityVideoClips(@RounterParam("position") position: String): Intent

    @RounterUri(Constant.scheme + "://member")
    fun getIntentActivityMembers(): Intent

    @RounterUri(Constant.scheme + "://pay")
    fun getIntentActivityPay(
        @RounterParam("boxid") boxid: String,
        @RounterParam("price") price: String,
        @RounterParam("type") type: String,
        @RounterParam("onePrice") onePrice: String,
        @RounterParam("fivePrice") fivePrice: String,
        @RounterParam("newPeople") newPeople: String,
        @RounterParam("page") page: String
    ): Intent

    @RounterUri(Constant.scheme + "://pay")
    fun getIntentActivityPay(
        @RounterParam("boxid") boxid: String,
        @RounterParam("price") price: String,
        @RounterParam("type") type: String,
        @RounterParam("onePrice") onePrice: String,
        @RounterParam("fivePrice") fivePrice: String,
        @RounterParam("newPeople") newPeople: String,
        @RounterParam("page") page: String,
        @RounterParam("selectNum") selectNum: String,
        @RounterParam("selectPrice") selectPrice: String
    ): Intent

    @RounterUri(Constant.scheme + "://goodsdetail")
    fun getIntentActivityGoodsDetail(@RounterParam("boxid") boxid: String): Intent

    @RounterUri(Constant.scheme + "://lotterybox")
    fun getIntentActivityLotteryBoxJump(
        @RounterParam("boxid") boxid: String,
        @RounterParam("type") type: String,
        @RounterParam("price") price: String,
        @RounterParam("depotIds") depotIds: String
    ): Intent

    @RounterUri(Constant.scheme + "://lotteryruslut")
    fun getIntentActivityLotteryReslutJump(
        @RounterParam("boxid") boxid: String,
        @RounterParam("type") type: String,
        @RounterParam("price") price: String,
        @RounterParam("depotIds") depotIds: String
    ): Intent

    @RounterUri(Constant.scheme + "://receiveaddress")
    fun getIntentActivityReceiveAddressJump(
        @RounterParam("isDefault") isDefault: String
    ): Intent

    @RounterUri(Constant.scheme + "://editaddress")
    fun getIntentActivityEditAddressJump(
        @RounterParam("id") id: String,
        @RounterParam("username") username: String,
        @RounterParam("mobile") mobile: String,
        @RounterParam("region") region: String,
        @RounterParam("address") address: String,
        @RounterParam("defaultAddress") defaultAddress: String

    ): Intent

    @RounterUri(Constant.scheme + "://orderdetail")
    fun getIntentActivityOrderDetail(): Intent

    @RounterUri(Constant.scheme + "://ordersuccess")
    fun getIntentActivityOrderSuccess(): Intent

    @RounterUri(Constant.scheme + "://shipsuccess")
    fun getIntentActivityShipmentSuccess(): Intent

    @RounterUri(Constant.scheme + "://logistics")
    fun getIntentActivityLogistics(): Intent

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

    @RounterUri(Constant.scheme + "://mymagiccoin")
    fun getIntentActivityMyMagicCoin(): Intent

    @RounterUri(Constant.scheme + "://warehouse")
    fun getIntentActivityWareHouse(): Intent

    @RounterUri(Constant.scheme + "://submit")
    fun getIntentActivitySubmit(): Intent

    @RounterUri(Constant.scheme + "://weekachieve")
    fun getIntentActivityWeekAchieve(): Intent


    @RounterUri(Constant.scheme + "://video_result")
    fun getIntentActivityVideoResult(@RounterParam("url") str: String): Intent

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

    @RounterUri(Constant.scheme + "://rights_detail")
    fun getIntentRightsDetail(
        @RounterParam("brandName") brandName: String,
        @RounterParam("brandUrl") brandUrl: String
    ): Intent

    @RounterUri(Constant.scheme + "://zero_buy")
    fun getIntentZeroBuyList(): Intent

    @RounterUri(Constant.scheme + "://tb_goods_detail")
    fun getIntentTbGoodsDetail(): Intent

    @RounterUri(Constant.scheme + "://member_order")
    fun getIntentMemberOrder(): Intent

    @RounterUri(Constant.scheme + "://open_member")
    fun getIntentOpenMember(): Intent

    @RounterUri(Constant.scheme + "://after_login")
    fun getIntentAfterLogin(
        @RounterParam("boxid") boxid: String,
        @RounterParam("price") price: String,
        @RounterParam("type") type: String,
        @RounterParam("onePrice") onePrice: String,
        @RounterParam("fivePrice") fivePrice: String,
        @RounterParam("newPeople") newPeople: String,
        @RounterParam("page") page: String
    ): Intent

    @RounterUri(Constant.scheme + "://after_login")
    fun getIntentAfterLogin(
        @RounterParam("boxid") boxid: String,
        @RounterParam("price") price: String,
        @RounterParam("type") type: String,
        @RounterParam("onePrice") onePrice: String,
        @RounterParam("fivePrice") fivePrice: String,
        @RounterParam("newPeople") newPeople: String,
        @RounterParam("page") page: String,
        @RounterParam("selectNum") selectNum: String,
        @RounterParam("selectPrice") selectPrice: String
    ): Intent

    @RounterUri(Constant.scheme + "://yfs_detail")
    fun getIntentYfsDetail(): Intent

    @RounterUri(Constant.scheme + "://select_box_detail")
    fun getIntentSelectBoxDetail(@RounterParam("boxId") boxId: String): Intent

    @RounterUri(Constant.scheme + "://box_result_detail")
    fun getIntentBoxResultDetail(
        @RounterParam("boxName") boxName: String,
        @RounterParam("boxId") boxId: String,
        @RounterParam("characterId") characterId: String,
        @RounterParam("uid") uid: String
    ): Intent

    @RounterUri(Constant.scheme + "://phone_voucher")
    fun getIntentPhoneVoucher(): Intent

    @RounterUri(Constant.scheme + "://cardvoucher")
    fun getIntentCardVoucher(@RounterParam("brand") brand: String): Intent

    @RounterUri(Constant.scheme + "://carddetail")
    fun getIntentCardDetail(): Intent

    @RounterUri(Constant.scheme + "://flashsale")
    fun getIntentFlashSale(): Intent

    @RounterUri(Constant.scheme + "://withdrawal")
    fun getIntentWithdrawal(): Intent

    @RounterUri(Constant.scheme + "://buymember")
    fun getIntentBuyMember(): Intent

    @RounterUri(Constant.scheme + "://configbuyvip")
    fun getIntentConfigBuy(): Intent

    @RounterUri(Constant.scheme + "://abuoutus")
    fun getIntentAboutUs(): Intent

    @RounterUri(Constant.scheme + "://topayskill")
    fun getIntentToPaySkill(): Intent

    @RounterUri(Constant.scheme + "://paysucess")
    fun getIntentPaySuccessSkill(@RounterParam("pay_type") pay_type: String): Intent

    @RounterUri(Constant.scheme + "://recharge")
    fun getIntentRecharge(): Intent

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

    @RounterUri(Constant.scheme + "://user_question")
    fun getIntentUserQuestion(): Intent

    @RounterUri(Constant.scheme + "://red_envelope")
    fun getIntentRedEnvelope(): Intent

    @RounterUri(Constant.scheme + "://searchresult")
    fun getIntentSearchReslut(
        @RounterParam("keyword") keyword: String
    ): Intent
}