feat: specialist_invite API + user lookup. Fixes EventHub/EventHubBack#55
CI / test (push) Successful in 6m47s
CI / deploy-ift (push) Successful in 3m23s
CI / e2e-ift (push) Successful in 1m58s
CI / deploy-stage (push) Successful in 2m1s
CI / e2e-stage (push) Successful in 1m13s

This commit is contained in:
2026-07-22 18:52:35 +03:00
parent af5f506866
commit 571f04737d
18 changed files with 1000 additions and 6 deletions
+40
View File
@@ -0,0 +1,40 @@
%% @doc Create specialist_invite table and indexes.
-module('20260722190000_specialist_invite').
-export([up/0, down/0]).
-include("records.hrl").
up() ->
ensure_table(specialist_invite, record_info(fields, specialist_invite)),
ensure_index(specialist_invite, calendar_id),
ensure_index(specialist_invite, invitee_user_id),
ensure_index(specialist_invite, invitee_email),
ensure_index(specialist_invite, token),
ensure_index(specialist_invite, status),
ok.
down() ->
_ = mnesia:delete_table(specialist_invite),
ok.
ensure_table(Table, Attrs) ->
case lists:member(Table, mnesia:system_info(tables)) of
true ->
ok;
false ->
case mnesia:create_table(Table, [{disc_copies, [node()]}, {attributes, Attrs}]) of
{atomic, ok} -> ok;
{aborted, {already_exists, Table}} -> ok;
{aborted, Reason} -> error({create_table_failed, Table, Reason})
end
end.
ensure_index(Table, Attr) ->
case mnesia:add_table_index(Table, Attr) of
{atomic, ok} -> ok;
{aborted, {already_exists, Table, _Pos}} -> ok;
{aborted, {already_exists, Table, Attr}} -> ok;
{aborted, {already_exists, _}} -> ok;
{aborted, Reason} -> error({add_index_failed, Table, Attr, Reason})
end.