%% ----------------------
%% desc     :藏宝图
%% author   :hh&tyl
%% time     :21/02/22
%% ----------------------

-define(NORMAL_TREASURE,    1). %% 普通藏宝图
-define(ADVANCE_TREASURE,   2). %% 高级藏宝图

-define(TREASURE_QUIZ,      1). %% 答题
-define(TREASURE_SHOP,      2). %% 限时商城
-define(TREASURE_BOSS,      3). %% 宝藏boss
-define(TREASURE_MONOPOLY,  4). %% 开宝箱
-define(TREASURE_TURNTABLE, 5). %% 高级转盘

-define(TREASURE_MAP_DAILY_EVENT_COUNT, 1). %% 秘闻事件单日触发次数

-define(TREASURE_MAP_TYPE_MAX,          1). %% 每种藏宝图类型单日使用次数

-define(TREASURE_MAP_MON,  data_treasure_map:get_kv(mon_id)).   %% 藏宝图boss

-define(IS_TREAURE_MAP_MON(MonId), MonId == ?TREASURE_MAP_MON).

%% 事件结束定时
-define(QUIT_TIME, 35000).

-define (USE_EXPIRE_TIME, 600).

%% 珍宝事件道具过期定时
-define(SHOP_EXPIRE, 400).

-record (role_treasure_map, {
    target = [],        %% 目标场景数据 [{场景, X, Y}]
    time = 0,           %% 开始时间
    type = 0,           %% 此次使用的宝图类型
    last_scene_info = [],    %% 上一次坐标缓存
    map = #{}           %% #{1 => 自定义普通藏宝图数据, 2 => 自定义高级藏宝图数据}
    }).

-record(advanced_map, {
    reward_id     = 0     %% 本次奖励Id
    ,rewards      = []    %% 本次奖励列表
    ,tv_type      = 0     %% 传闻类型
    ,times        = 0     %% 月度抽取次数（p.s.:计算月度奖励）
}).

-record (normal_map, {
    event_id = 0,           %% 事件id
    start_time = 0,         %% 事件开始时间
    force_ref = undefined,  %% 强制关闭定时
    tv_type = 0,            %% 传闻类型
    event_data = #{},       %% 事件其余数据
    limit_shop_info = []    %% 珍宝限时可购买的商品列表
    }).

%% ---------------------------------- 配置 ----------------------------------------
%% 藏宝图奖励配置表
-record(base_treasure_map_rewards, {
    reward_id       = 0         %% 奖励Id
    ,type           = 0         %% 类型 1-普通 2-高级藏宝图
    ,min_lv         = 0         %% 最低等级
    ,max_lv         = 0         %% 最高等级
    ,min_vip        = 0         %% vip下限
    ,get_weight     = 0         %% 实际抽奖权重
    ,show_weight    = 0         %% 展示权重
    ,notice         = 0         %% 是否传闻 0-否 1-本服 2-跨服(高级藏宝图终极大奖)
    ,rewards        = []        %% 奖励
}).


%% 藏宝图坐标表
-record (base_treasure_map_pos, {
    pos_id = 0,     %% 坐标id
    pos = []        %% 
    }).


%% 藏宝图秘闻奖励表
-record (base_treasure_event_rewards, {
    reward_id = 0,  %% 奖励Id
    type = 0,       %% 事件类型
    min_lv = 0,
    max_lv = 0,
    min_vip = 0,
    weight = 0,
    rewards = []
    }).

%% 藏宝图限时商城表
-record (base_treasure_map_door, {
    reward_id = 0,
    min_lv = 0,
    max_lv = 0,
    weight = 0,
    rewards = []    %% [{{奖励1,数量},货币类型,价格,限购数量}]
    }).

%% 藏宝图答题表
-record (base_treasure_map_quiz, {
    id = 0,
    question = "",
    option = [],
    answer = 0
    }).


-define (SQL_SELECT_TREASURE_SHOP_INFO, 
    <<"SELECT time, limit_shops FROM role_treasure_map_shop_info WHERE role_id = ~p">>).

-define (SQL_DELETE_TREASURE_SHOP_INFO, 
    <<"DELETE FROM role_treasure_map_shop_info WHERE role_id = ~p AND time <= ~p">>).

-define (SQL_REPLACE_TREASURE_SHOP_INFO, 
    <<"REPLACE INTO role_treasure_map_shop_info SET role_id = ~p, time = ~p, limit_shops = ~ts">>).