------------------------------------------------
--作者: dhq
--日期: 2019-05-13
--文件: ServerData.lua
--模块: ServerData
--描述: 充值系统数据表的数据由服务器下发了,这个数据是服务器下发的数据
------------------------------------------------
local RuntimePlatform = CS.UnityEngine.RuntimePlatform

local ServerData =
{
    --商品ID
    Id = 0,
    --配置表ID
    CfgId = 0,
    --商品名字描述(主要用于BI后台数据)
    Desc = "",
    --SDK需要的支付类型
    GoodsDealType = 0,
    --充值类型 1正常充值,2每日礼包充值...等等具体看配置表
    RechargeType = 0,
    --只针对Type=1(正常充值)的情况使用,
    RechargeSubType = 0,
    --充值次数
    RechargeTime = 0,
    --显示的Icon
    Icon = 0,
    --充值档位对应消耗的真实货币(单位:分)
    Money = 0,
    --传给SDK的充值金额
    SDKPrice = 0,
    --对应奖励 物品类型_数量_绑定_职业
    Reward = 0,
    --充值倍数倍数_次数(3_2表示前2次充值都是3倍奖励)-1代表无限次
    MultipleTime = 0,
    --充值额外奖励
    ExtraReward = 0,
    --额外奖励可领取次数-1代表无限次
    ExtraRewardTime = 0,
    --商品扩展字段
    GoodsExt = "",
    CurPlatform = nil,
}

function ServerData:New(sData)
    local _m = Utils.DeepCopy(self)
    _m.CurPlatform = LogicAdaptor.GetRuntimePlatform()
    _m:RefeshData(sData)
    return _m
end

function ServerData:RefeshData(sData)
    --传给SDK的ID
    self.Id              = sData.goods_id
    --配置表ID
    self.CfgId = sData.goods_system_cfg_id
    --商品名字描述(主要用于BI后台数据)
    self.Desc = sData.goods_name
    --交易类型
    self.GoodsDealType = sData.goods_pay_channel
    -- * 充值类型
    -- * 1:正常充值
    -- * 2:每日礼包充值
    -- * 3:畅游月卡
    -- * 4:尊享月卡
    -- * 5:终身卡
    -- * 6:成长基金
    -- * 7:神秘商店
    -- * 8:0元购
    -- * 9:直购礼包(超值折扣)
    -- * 10:狂欢周
    -- * 11:运营活动类(后台配置)
    self.RechargeType = tonumber(sData.goods_type)
    -- * 只针对Type=1(正常充值)的情况使用,其他类型不能使用
    -- * 1=正常充值
    -- * 2=新手礼包(一生一次)
    -- * 3=周礼包(一周一刷新)
    -- * 4=日礼包(一日一刷新)
    self.RechargeSubType = sData.goods_subtype
    -- * 充值次数(当前轮每个挡位对应充值的次数)
    -- * -1=无次数限制
    self.RechargeTime = sData.goods_limit
    -- * 显示的图标的ID(hide)
    self.Icon = sData.goods_icon
    -- * 充值档位对应消耗的真实货币(单位:分)
    -- * 1:android
    -- * 2:ios
    -- * (不需要区分大小写)
    local _price = sData.goods_price

    if CS.UnityEngine.Application.platform == RuntimePlatform.Android then
        local _priceDict = Dictionary:New(_price.android)
        if _priceDict:ContainsKey(GameCenter.PaySystem.SdkPlatCfg.MoneyCode) then
            local _priceByMoneyCode = tonumber(_priceDict[GameCenter.PaySystem.SdkPlatCfg.MoneyCode])
            self.Money    = tonumber(_priceByMoneyCode / 100)
            self.SDKPrice = tonumber(_priceByMoneyCode)
        end
    else
        local _priceDict = Dictionary:New(_price.ios)
        if _priceDict:ContainsKey(GameCenter.PaySystem.SdkPlatCfg.MoneyCode) then
            local _priceByMoneyCode = tonumber(_priceDict[GameCenter.PaySystem.SdkPlatCfg.MoneyCode])
            self.Money    = tonumber(_priceByMoneyCode / 100)
            self.SDKPrice = tonumber(_priceByMoneyCode)
        end
    end
    -- * 对应奖励
    -- * 物品类型_数量_绑定_职业
    -- * 绑定 0未绑定 1绑定
    -- * 也只 0男剑 1女枪 9通用
    self.Reward = sData.goods_reward
    -- * 充值倍数
    -- * 倍数_次数(3_2表示前2次充值都是3倍奖励)
    -- * -1代表无限次
    self.MultipleTime = sData.goods_multiple
    -- * 额外赠送
    -- * 物品类型_数量_绑定_职业
    -- * 绑定 0未绑定 1绑定
    -- * 也只 0男剑 1女枪 9通用
    self.ExtraReward = sData.goods_extra_reward
    -- * 额外奖励可领取次数 -1代表无限次
    self.ExtraRewardTime = sData.goods_extra_reward_limit
    --商品扩展字段
    self.GoodsExt = sData.goods_ext
end

return ServerData