package main

import (
	"../log"
	"../rpc"
	"github.com/gin-gonic/gin"
	"go.uber.org/zap"
)

type CallbackAPI func(c *gin.Context, args *rpc.RpcArgs, body string)

var (
	MCbAPI = map[string]CallbackAPI{
		"change_channel":       do_change_channel,       // 更新渠道列表
		"change_game":          do_change_game,          // 更新游戏列表
		"change_money":         do_change_money,         // 修改余额
		"change_bank_money":    do_change_bank_money,    // 修改银行
		"disable":              do_disable,              // 禁止玩家
		"online_list":          do_online_list,         // 在线玩家
		"private_notice":       do_private_notice,       // 私信
		"change_client_config": do_change_client_config, // 客户端配置
		"system_notice":        do_marquees,             // 系统通知 跑马灯
		"delete_system_notice": do_delete_system_notice, // 删除系统通知
		"recharge":             do_recharge,             // 充值发货
		"withdraw":             do_withdraw,             // 提现
		"kickoff":              do_kickoff,              // 踢人
		"server_info":          do_server_info,          // 服务器状态
		"server_offline":       do_server_offline,       // 下线服务器
		"activity":             do_activity,             // 活动
		"chip_info":            do_chip_info,            //  下注信息
		"get_promote":          do_get_promote,          // 领取推广佣金
		"task_config":          do_get_taskConf,         // 获取游戏任务配置
		"not_read_message":		do_not_read_message,	 // 未读消息
		"critical_notice":		do_critical_notice,		 // 紧急通知
		"reset_bank_pass": 		do_reset_bank_pass,		 // 充值保险箱密码
		"red_packets":			do_red_packets,			 // 红包雨
		"hand_withdraw":        do_hand_withdraw,        // 手动下分
		"withdraw_success": 	do_withdraw_success,		// 提现打款成功
		"reset_alipay":				do_reset_alipay,			// 重置支付宝
	}
)

func dispatch(c *gin.Context, req *MgrRequest, body []byte) error {
	log.Debug("mgr", zap.String("cmd", req.Cmd))

	args := &rpc.RpcArgs{}
	args.Cmd = req.Cmd
	args.Params = req.Params

	if _func_, ok := MCbAPI[req.Cmd]; ok {
		_func_(c, args, string(body))
	} else {
		do_default(c, req)
	}
	return nil
}
