%%%--------------------------------------
%%% @Author  : calvin
%%% @Email   : calvinzhong888@gmail.com
%%% @Created : 2012.7.3
%%% @Description: 礼包头文件
%%%--------------------------------------

%% 礼包缓存key
-define(GIFT_CACHE_KEY(RoleId, GiftId), lists:concat(["fetch_gift_", RoleId, "_", GiftId])).

%% 插入一条记录到礼包表gift_list
-define(SQL_GIFT_LIST_INSERT, <<"REPLACE INTO `gift_list` SET player_id=~p, gift_id=~p, give_time=~p, get_time=~p, get_num=~p, status=~p">>).
%% 更新为已经领取礼包
-define(SQL_GIFT_LIST_UPDATE_TO_RECEIVED, <<"UPDATE `gift_list` SET get_num=get_num+1, get_time=~p, status=1 WHERE player_id=~p AND gift_id=~p">>).
%% 查询一条记录：通过玩家ID和礼包ID
-define(SQL_GIFT_LIST_FETCH_ROW, <<"SELECT player_id, gift_id, status FROM `gift_list` WHERE player_id=~p AND gift_id=~p LIMIT 1">>).
%% 查询几条记录：通过玩家ID和礼包ID
-define(SQL_GIFT_LIST_FETCH_MUTIL_ROW, <<"SELECT player_id, gift_id, status FROM `gift_list` WHERE player_id=~p AND gift_id IN(~s)">>).
%% 查询玩家所有礼包记录
-define(SQL_GIFT_FETCH_ALL, <<"SELECT gift_id, give_time, get_num, get_time, offline_time, status FROM `gift_list` WHERE player_id=~p">>).
%% 查询在线倒计时礼包数据
-define(SQL_GIFT_FETCH_ONLINE, <<"SELECT gift_id, give_time, get_num, get_time, offline_time, status FROM `gift_list` WHERE player_id=~p">>).

-define(GIFTBAG_TYPE_FIX,        0). %% 纯固定奖励
-define(GIFTBAG_TYPE_RANDOM,     1). %% 纯随机奖励
-define(GIFTBAG_TYPE_FIX_RANDOM, 2). %% 随机+固定奖励
-define(GIFTBAG_TYPE_OPTIONAL,   3). %% 自选奖励

%% 礼包配置表
-record(ets_gift, {
          goods_id = 0,       %% 物品类型ID
          get_way = 0,        %% 领取方式，1放到背包，2直接领取
          bind = 1,           %% 绑定状态，0非绑定，1绑定
          start_time,         %% 有效开始时间
          end_time,           %% 有效结束时间
          status,             %% 是否有效:0否;1是
          condition = [],     %% 条件 [{cost(消耗),[物品列表]}, {count(每天次数),2}], 物品列表注意[{0, GId, Num}, {1|2|3(货币类), 原价, 现价}]
          filter = [],        %% 筛选内容[lv, sex, career, turn, server_lv, rune],最多只有4个, lv, server_lv, rune 互为替换,在最后的生效
          show = 0            %% 是否显示礼包领取界面
         }).

%% 礼包奖励内容配置表
-record(ets_gift_reward, {
          goods_id = 0,       %% 物品类型ID
          slv = 0,            %% 开启等级
          elv = 0,            %% 结束等级
          sex = 0,            %% 性别
          career = 0,         %% 职业
          turn = 0,           %% 转生
          rand = 0,           %% 随机次数
          fixed_gifts = [],   %% 固定物品:[{类型, 物品id, 数量}]
          rand_gifts = [],    %% 随机物品:[{{类型, 物品id, 数量}, R(权重)}]
          drop_gifts = [],    %% 走掉落规则的物品: [{规则id, 次数}]
          tv_goods_id = [],   %% 需要传闻的物品id:打开礼包时如果开到这些物品,会发传闻
          is_back = 0         %% 是否放回随机:0:否;1:是
         }).

%% 自选礼包配置
-record(optional_gift, {
          goods_id = 0,       %% 物品类型ID
          career = 0,         %% 职业：0表示通用,其它表示具体职业
          optional_num = 1,   %% 自选数量
          list = []           %% 物品列表 [{No, {Type, GId, Num}}...] = [{序号, 物品类型, 物品id, 数量}]
         }).
