%%% -------------------------------------------------------
%%% @doc
%%% @end
%%% -------------------------------------------------------
-ifndef(CLUSTERS_ZONE_HRL).
-define(CLUSTERS_ZONE_HRL, ok).

%% 分区类型
-define(SMALL_ZONE_TYPE,    1).     %% 分区类型：小型分区
-define(MEDIUM_ZONE_TYPE,   2).     %% 分区类型：中型分区
-define(LARGE_ZONE_TYPE,    3).     %% 分区类型：大型分区
-define(ZONE_TYPE_LIST, [?SMALL_ZONE_TYPE, ?MEDIUM_ZONE_TYPE, ?LARGE_ZONE_TYPE]).

-define(ZONE_MAX_SERVER_NUM(ZoneType), %% 每个分区游戏服数量
    data_clusters_zone:get_zone_max_server_num(ZoneType)).

-define(ETS_ZONE_ROUTE, ets_zone_route).
%% 分区路由信息表
-record(zone_route, {
        key = {0, 0},               %% 路由主键 {zone_type :: 分区类型, server_id :: 服务器id}
        zone = 0                    %% 分区
    }).

-record(zone_base, {
        server_id = 0,              %% 每一个服的id(主服)
        zone = 0,                   %% 区id
        time = 0,                   %% 开服时间
        world_lv = 0,               %% 世界等级
        merge_ids = []              %% 每一个服的所有合服id
    }).

-record(clusters_zone, {
        zone_type = 0,              %% 分区类型
        zones = [],                 %% 所有的分区(只保存主服的server_id信息) [#zone_base{}]
        next = 1,                   %% 下一个分区id
        is_zone = 0,                %% 是否已经分区(10分钟后分区设置为1，后续加入进来的服直接添加到最后分区)
        ref = undefined             %% 分区定时器
    }).

-endif.
