%%% @author root <root@localhost.localdomain>
%%% @copyright (C) 2018, root
%%% @doc
%%%
%%% @end
%%% Created :  3 Feb 2018 by root <root@localhost.localdomain>

%% 称号操作
-define(OP_ACTIVE,     1). %% 系统激活
-define(OP_REMOVE,     2). %% 移除
-define(OP_REPLACE,    3). %% 顶替
-define(OP_PROP,       4). %% 道具激活


%% 称号状态
-define(STATUS_UNUSED, 0). %%  没有佩戴
-define(STATUS_USED,   1). %%  佩戴中

%% 结果
-define(CODE_FAIL,     0). %%  失败
-define(CODE_OK,       1). %%  成功

-record(base_designation, {
      id = 0,                           %% 称号id
      name = "",                        %% 称号名称
      main_type = 0,                    %% 1-名人称号，2-成就称号，3情缘称号，4-活动称号
      description = "",                 %% 描述
      type = 1,                         %% 默认1，1图片称号，2文字称号
      is_trial = 0,                     %% 是否可体验 默认是0
      goods_id = 0,                     %% 道具激活的称号对应的物品ID，默认0
      attr_list = [],                   %% 属性奖励，格式：[{属性1,数值},{属性2，数值}……]
      resource_id = 0,                  %% 称号对应的资源ID，文字称号填0
      is_global = 0,                    %% 全局称号数量,0表示无限制
      color = 0,                        %% 称号名称显示的颜色,前端使用
      power = 0,                        %% 战力显示
      access_way = "",                  %% 获取途径
      access_id = [],                   %% 获取途径id
      index = 0                         %% 排序字段
      ,force_cancel                     %% 是否可以强制取消
    }).

%% 限时称号体验配置
-record(base_dsgt_trial, {
    goods_id = 0,                       %% 物品id
    dsgt_id = 0,                        %% 称号id
    trial_time = 0,                     %% 体验时间
    is_overlay = 0                      %% 是否可叠加 0|1
  }).

-record(dsgt_status, {
      player_id = 0,                    %% 玩家id
      %% current_id = 0,                %% 玩家当前佩戴的称号id
      dsgt_map = #{},                   %% 当前玩家激活的称号列表 id => #designation
      attr = [],                        %% 当前所有激活称号的属性状态 []
      power = 0                         %% 战力
    }).

-record(designation, {
      id = 0,                           %% 称号id
      status = 0,                       %% 称号当前状态
      active_time = 0,                  %% 激活时间戳
      end_time = 0,                     %% 过期时间
      time = 0,                         %% 操作时间
      dress_time = 0,                   %% 穿戴时间
      is_replace = 1                    %% 0被顶替 1为顶替 %% 非全局称号默认1,全局称号只有穿戴时是1,被替换时为0
    }).

-record(active_para, {
      id = 0,                           %% 称号id
      goods_id = 0,                     %% 物品id
      expire_time = 0,                  %% 称号持续时长
      is_overlay = 0                    %% 是否可叠加
    }).

%% 获取正在佩戴的称号id
-define(SQL_DSGT_SEL_USED_ID,
        <<"select id from `designation` where player_id=~p and status=1 limit 1">>).

%% 获取玩家所有的称号id
-define(SQL_DSGT_SEL_ID,
        <<"select id from `designation` where player_id=~p">>).

%% 获取一个称号的佩戴状态和时效时间
-define(SQL_DSGT_SEL_STATUS,
        <<"select status, endtime from `designation` where player_id=~p and id=~p and is_replace =1">>).

%% Rep更新玩家称号
-define(SQL_DSGT_REPLACE,
        <<"replace into `designation` set player_id=~p, id=~p, status=~p, active_time=~p, endtime=~p, time=~p,dress_time = ~p,is_replace =~p">>).

%% Up更新玩家称号
-define(SQL_DSGT_UP,
        <<"update designation set status=~p, active_time=~p, endtime=~p, time = ~p ,dress_time = ~p, is_replace = ~p where player_id = ~p and id=~p  ">>).

-define(SQL_DSGT_UP_DRESSTIME,
        <<"update designation set status=~p, active_time=~p, endtime=~p, time = ~p ,dress_time = ~p where player_id = ~p and id=~p ">>).

-define(SQL_DSGT_UPDATE_STATUS,
      <<"update designation set status=~p where player_id = ~p and id=~p">>).

-define(SQL_DSGT_UPDATE_ACTIVE_AND_END_TIME,
      <<"update designation set active_time=~p, endtime=~p, is_replace=~p where player_id=~p and id=~p">>).

%% 删除
-define(SQL_DSGT_AUTOID_BATCH_DELETE,
        <<"delete from `designation` where player_id=~p and id in (~s) ">>).

%% 获取玩家所有的称号
-define(SQL_All_DSGT_SELECT,
        <<"select id, status, active_time, endtime, time, dress_time, is_replace from `designation` where player_id=~p ">>).

%获取玩家某条称号
-define(SQL_ONE_DSGT_SELECT,
        <<"select id, status, active_time, endtime, time,dress_time,is_replace  from `designation` where player_id=~p and id =~p">>).

%% 获取所有获得同一个称号的玩家
-define(SQL_DSGT_PLAYER_SELECT,
        <<"select player_id, active_time, is_replace from `designation` where id=~p">>).

%% 删除玩家的称号
-define(SQL_DSGT_DELETE,
        <<"delete from `designation` where player_id=~p and id = ~p">>).

%% 只更新使用状态
-define(SQL_DSGT_STATE_UP,
        << "update designation set status=~p, time = ~p ,dress_time = ~p where player_id = ~p and id=~p">>).

%% 只更新顶替和使用状态
-define(SQL_DSGT_STATE_ISREPLACE_UP,
        << "update designation set status=~p, time = ~p ,is_replace = ~p where player_id = ~p and id=~p">>).

%% 更新称号结束时间
-define(SQL_DSGT_UPDATE_ETIME,
        << "update designation set endtime = ~p, time = ~p where id = ~p and player_id in (~s)">>).

%%获取穿戴记录
-define(SQL_SELECT_LASTDRESS,
        <<"select id from `designation` where player_id=~p and dress_time > 0 and status=1">>).

%获取穿戴历史记录
-define(SQL_SELECT_DRESS_HISTORY,
        <<"select id,dress_time from `designation` where player_id=~p and id = ~p and dress_time > 0">>).











