%%%-------------------------------------------------------------------
%%% @author liushl
%%% @doc
%%%     秒杀活动
%%% @end
%%%-------------------------------------------------------------------
-author("liushl").

-define(SECKILL_NOTICE_TIME, 600).      %% 预告时间
-define(SECKILL_LOG_LENGTH,  20).       %% 秒杀记录长度
-define(SECKILL_GOODS_LOG_LENGTH, 5).   %% 商品购买记录长度

%% 秒杀活动管理
-record(seckill_center, {
    buy_log = #{}       %% 购买记录：#{zone_id => []}
    , act_data = #{}    %% 活动数据：#{sub_type => #seckill_act{}}
    , round         = 0         %% 轮次：
    %% 如果是开启中，则表示当前轮次，如果是未开始，则表示下一轮次，小于round的场次都表示结束
    , round_begin   = 0         %% 场次开始时间
    , round_end     = 0         %% 场次结束时间
    , ref_round                 %% 场次切换定时器
    , ref_notice                %% 场次预告定时器
}).

%% 按活动管理
-record(seckill_act, {
    sub_type        = 0         %% 定制活动子类型
    , begin_time    = 0         %% 活动开始时间
    , end_time      = 0         %% 活动结束时间
    
    , zone_data     = #{}       %% 分区活动数据
}).
%% 秒杀分区数据
-record(seckill_zone, {
    zone_id         = 0    %% 分区id
    , goods_info    = []   %% 商品购买情况 [#seckill_goods_info{}]
    , role_info     = #{}   %% 玩家购买情况 [#seckill_role{}]--场次结束清除数据，不存数据库
}).

%% 商品数据
-record(seckill_goods_info, {
    grade_id    = 0,        %% 商品id
    buy_count   = 0,        %% 购买次数
    time        = 0
}).
%% 秒杀玩家购买数据
-record(seckill_role, {
    role_id         = 0         %% 玩家id
    , buy_count     = []         %% 购买次数 [{奖励档次,购买数量}]
}).
%% 购买记录--保留最新的20条数据
-record(seckill_buy_log, {
    server      = 0,
    name        = "",
    cost        = 0,
    goods_id    = 0,
    num         = 0,
    tv_id       = 0,        %% 传闻id
    time        = 0
}).