Статистика для дашборда #7

This commit is contained in:
2026-04-28 21:31:22 +03:00
parent 967a024d0c
commit c87d56bb49
18 changed files with 210 additions and 167 deletions
+9 -1
View File
@@ -17,7 +17,15 @@ generate_jwt(UserId, Role) ->
eventhub_auth:generate_user_token(UserId, Role).
verify_jwt(Token) ->
eventhub_auth:verify_user_token(Token).
case eventhub_auth:verify_user_token(Token) of
{ok, UserId, Role} -> {ok, UserId, Role};
{error, _} ->
% Если не подошёл пользовательский, пробуем админский
case eventhub_auth:verify_admin_token(Token) of
{ok, AdminId, Role} -> {ok, AdminId, Role};
{error, Reason} -> {error, Reason}
end
end.
generate_refresh_token(UserId) ->
eventhub_auth:generate_refresh_token(UserId).
+29
View File
@@ -0,0 +1,29 @@
-module(logic_stats).
-export([get_stats/2]).
-include("records.hrl").
-spec get_stats(Role :: atom(), AdminId :: binary()) -> map().
get_stats(superadmin, _AdminId) ->
#{
users => core_user:count_users(),
calendars => core_calendar:count_calendars(),
events => core_event:count_events(),
bookings => core_booking:count_bookings(),
reviews => core_review:count_reviews(),
reports_total => core_report:count_reports_by_status(pending),
tickets_open => core_ticket:count_tickets_by_status(open),
subscriptions => core_subscription:count_subscription()
};
get_stats(moderator, AdminId) ->
#{
reports_reviewed => core_report:count_reports_by_admin(AdminId, reviewed),
events_moderated => 0 % пока заглушка, можно добавить позже
};
get_stats(support, AdminId) ->
#{
tickets_assigned => core_ticket:count_tickets_by_admin(AdminId, open),
reports_pending => core_report:count_reports_by_status(pending)
};
get_stats(_, _) ->
#{}.