From bb37909ffbc16d6abba50fdc5ca88bc04d3ad825 Mon Sep 17 00:00:00 2001 From: Aleksey Sabilin Date: Thu, 30 Jul 2026 15:56:49 +0300 Subject: [PATCH] fix(events): guard booking_occupancy when booking table missing Admin eunit suites call event_to_json without Mnesia booking table; catch list_by_event failures and treat as free. --- src/handlers/handler_utils.erl | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/handlers/handler_utils.erl b/src/handlers/handler_utils.erl index f8778b4..881bd6f 100755 --- a/src/handlers/handler_utils.erl +++ b/src/handlers/handler_utils.erl @@ -345,9 +345,16 @@ event_to_json(Event) -> }. %% @doc Активная занятость слота для сетки commercial (Studio aggregate). +%% Safe if Mnesia booking table is not ready (admin/unit tests without full schema). -spec booking_occupancy(#event{}) -> free | pending | confirmed. booking_occupancy(#event{id = EventId, start_time = Start}) -> - {ok, Bookings} = core_booking:list_by_event(EventId), + Bookings = + try + {ok, List} = core_booking:list_by_event(EventId), + List + catch + _:_ -> [] + end, Now = calendar:universal_time(), lists:foldl( fun(#booking{status = confirmed}, _Acc) ->