%%%-------------------------------------------------------------------
%%% @doc     精英考核-头文件
%%% Module  : elite_assessment.hrl
%%% Created : 2020-07-13
%%% @Author : tyl
%%%-------------------------------------------------------------------

%% 章节奖励领取状态
-define(CAN_NOT_RECEIVE,  0).       %% 未达条件,不可领取
-define(CAN_RECEIVE,      1).       %% 可领取
-define(HAS_RECEIVED,     2).       %% 已领取

-define(ELITE_WSTATUS_SUCCESS,    1).     %% 写入成功
-define(ELITE_WSTATUS_WAIT,       2).     %% 待写入

-define(ELITE_TASK_SAVE_DB_CD,         0).       %% 写入数据库CD时间

-define(D_ELITE_ASSESS,      "D_ELITE_ASSESS").  %% 进程字典key(任务数据量较大,模仿成就做法-放进程字典)

-define(ELITE_TASK_COUNT, 20).     %% 保底默认章节任务数量

%% 精英考核数据
-record(status_elite_assess, {
	category_map          = #{}   %% #{category => status(1)}已完成章节 - 计算得出
	,category_reward_list = []    %% [{category, status}] 章节奖励领取状态(废弃)
	,progress_list        = []    %% [#elite_assess{}] 保存有进度数据的成就
	,current_category     = 0     %% 当前的进度章节
	,last_refresh_time    = 0     %% 上次刷新时间(废弃)
	,login_day            = 0     %% 累计登录天数(废弃)
}).

-record(elite_assess, {
	task_id         = 0              %% 任务Id
	,category       = 0              %% 章节
	,sub_category   = 0              %% 子章节
	,progress       = 0              %% 进度
	,status         = 0              %% 奖励状态  0: 未达成 1: 已达成 2: 已领取
	,wtime          = 0              %% 最近一次更新写入数据库的时间
	,wstatus        = 0              %% 写入状态 1: 写入成功 2: 待写入
}).

%% ==================================== 后台配置 ===========================
%% 任务配置
-record(elite_assess_task_cfg, {
	category        = 0         %% 章节Id
	,sub_category   = 0         %% 子章节Id
	,task_id        = 0         %% 任务Id
	,content        = []        %% 任务内容
	,reward         = []        %% 奖励配置
	,jump           = ""        %% 客户端跳转
	,task_name      = ""        %% 任务名称
	,task_desc      = ""        %% 任务描述
}).

%% 章节奖励配置
-record(elite_assess_reward_cfg, {
	category        = 0         %% 章节Id
	,reward         = []        %% 奖励
	,client_show    = ""        %% 外观奖励(前端展示)
	,open_lv        = 0         %% 开放等级
	,open_day       = 0         %% 开放天数
	,category_name  = ""        %% 章节名称
}).

%% 任务资源配置(前端使用)
-record(elite_assess_task_resource_cfg,{
	task_id     = 0             %% 任务Id
	,task_tag   = ""            %% 任务标签
	,icon_name  = ""            %% 图标名称
	,icon_id    = ""            %% 图标资源Id
}).

%% ------------------------------ 数据库操作 ------------------------------------
%% 任务相关
-define(insert_elite_assessment,
	<<"replace into elite_assess_task (`role_id`, `task_id`, `progress`, `status`) values (~p, ~p, ~p, ~p)">>).
-define(select_elite_assessment,
	<<"select `task_id`, `progress`, `status` from elite_assess_task where `role_id` = ~p">>).
-define(update_elite_assess_progress,
	<<"update elite_assess_task set `progress` = ~p, `status` = ~p where `role_id` = ~p and `task_id` = ~p">>).
-define(update_elite_assess_status,
	<<"update elite_assess_task set `status` = ~p where `role_id` = ~p and `task_id` = ~p">>).

%% 章节奖励
-define(insert_elite_assessment_category_reward,
	<<"replace into elite_assess_category_reward (`role_id`, `category`, `status`) values(~p, ~p, ~p)">>).
-define(select_elite_assessment_category_reward,
	<<"select `category`, `status` from elite_assess_category_reward where `role_id` = ~p">>).

%% 累计登录天数
-define(insert_elite_assessment_login_days,
	<<"replace into elite_assess_login_days (`role_id`, `login_day`, `last_refresh_time`) values (~p, ~p, ~p)">>).
-define(select_elite_assessment_login_days,
	<<"select `login_day`, `last_refresh_time` from elite_assess_login_days where `role_id` = ~p">>).