fix: persist specialist_id on event create; 402 commercial without active sub. Fixes EventHub/EventHubBack#61
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
-module(logic_calendar).
|
||||
-include("records.hrl").
|
||||
|
||||
-export([create_calendar/3, create_calendar/4, get_calendar/2, list_calendars/1,
|
||||
-export([create_calendar/3, create_calendar/4, create_calendar/5, get_calendar/2, list_calendars/1,
|
||||
update_calendar/3, delete_calendar/2, ensure_default_calendar/1]).
|
||||
-export([can_access/2, can_edit/2, booking_open/1]).
|
||||
-export([admin_list_all/0, admin_get_by_id/1, admin_update/2, admin_delete/1]).
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
|
||||
%% ============ Управление подписками ============
|
||||
|
||||
%% Начать пробный период (вызывается при первой попытке создать commercial календарь)
|
||||
%% Начать пробный период (явно через POST /v1/subscription action=start_trial)
|
||||
start_trial(UserId) ->
|
||||
case core_subscription:get_active_by_user(UserId) of
|
||||
{ok, _} ->
|
||||
@@ -103,29 +103,12 @@ check_user_subscription(UserId) ->
|
||||
{ok, free, free}
|
||||
end.
|
||||
|
||||
%% Проверить, может ли пользователь создавать коммерческие календари
|
||||
%% Если у пользователя нет активной подписки, но он ещё не использовал пробный период,
|
||||
%% автоматически запускаем пробный период
|
||||
%% Проверить, может ли пользователь создавать/апгрейдить commercial-календарь.
|
||||
%% Только при уже активной подписке/trial; trial стартует явно через start_trial/1.
|
||||
can_create_commercial_calendar(UserId) ->
|
||||
case check_user_subscription(UserId) of
|
||||
{ok, active, _} ->
|
||||
true;
|
||||
{ok, free, free} ->
|
||||
% Пользователь без подписки - проверяем, не использовал ли он уже пробный период
|
||||
{ok, AllSubs} = core_subscription:list_by_user(UserId),
|
||||
TrialUsed = lists:any(fun(S) -> S#subscription.trial_used == true orelse S#subscription.plan == trial end, AllSubs),
|
||||
case TrialUsed of
|
||||
false ->
|
||||
% Автоматически запускаем пробный период
|
||||
case start_trial(UserId) of
|
||||
{ok, _} -> true;
|
||||
_ -> false
|
||||
end;
|
||||
true ->
|
||||
false
|
||||
end;
|
||||
_ ->
|
||||
false
|
||||
{ok, active, _} -> true;
|
||||
_ -> false
|
||||
end.
|
||||
|
||||
%% ============ Обслуживание ============
|
||||
|
||||
Reference in New Issue
Block a user