From eee6eebc7483f4ea26031cf406521e70f1e8eed5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=90=D0=BB=D0=B5=D0=BA=D1=81=D0=B5=D0=B9=20=D0=A1=D0=B0?= =?UTF-8?q?=D0=B1=D0=B8=D0=BB=D0=B8=D0=BD?= Date: Sat, 2 May 2026 23:13:49 +0300 Subject: [PATCH] =?UTF-8?q?=D0=90=D0=BD=D0=B0=D0=BB=D0=B8=D0=B7=20=D0=B8?= =?UTF-8?q?=20=D1=80=D0=B0=D1=81=D1=88=D0=B8=D1=80=D0=B5=D0=BD=D0=B8=D0=B5?= =?UTF-8?q?=20=D1=81=D1=82=D1=80=D1=83=D0=BA=D1=82=D1=83=D1=80=D1=8B=20?= =?UTF-8?q?=D1=82=D0=B0=D0=B1=D0=BB=D0=B8=D1=86=20https://git.sabilin.com/?= =?UTF-8?q?EventHub/EventHubBack/issues/12?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- include/records.hrl | 78 +++++++++++++++++++++++++++++++++++---------- 1 file changed, 62 insertions(+), 16 deletions(-) diff --git a/include/records.hrl b/include/records.hrl index 8d4c493..29c9925 100644 --- a/include/records.hrl +++ b/include/records.hrl @@ -10,12 +10,19 @@ role :: user | bot, status :: active | frozen | deleted, reason :: binary() | undefined, + nickname :: binary() | undefined, + avatar_url :: binary() | undefined, + timezone :: binary() | undefined, + language :: binary() | undefined, + social_links :: [binary()] | undefined, + phone :: binary() | undefined, + preferences :: map() | undefined, created_at :: calendar:datetime(), updated_at :: calendar:datetime() }). -record(session, { - token :: binary(), % JWT или refresh токен + token :: binary(), % JWT или refresh токен user_id :: binary(), expires_at :: calendar:datetime(), type :: access | refresh @@ -28,6 +35,12 @@ password_hash :: binary(), role :: superadmin | admin | moderator | support, status :: active | blocked, + nickname :: binary() | undefined, + avatar_url :: binary() | undefined, + timezone :: binary() | undefined, + language :: binary() | undefined, + phone :: binary() | undefined, + preferences :: map() | undefined, created_at :: calendar:datetime(), updated_at :: calendar:datetime() }). @@ -46,9 +59,14 @@ owner_id :: binary(), title :: binary(), description :: binary(), + short_name :: binary() | undefined, + category :: binary() | undefined, + color :: binary() | undefined, + image_url :: binary() | undefined, + settings :: map() | undefined, tags :: [binary()], type :: personal | commercial, - confirmation :: auto | manual | {timeout, integer()}, % секунд + confirmation :: auto | manual | {timeout, integer()}, % секунд rating_avg :: float(), rating_count :: non_neg_integer(), status :: active | frozen | deleted, @@ -63,6 +81,17 @@ rights :: read | write | admin }). +%% ------------------- Специалисты календаря --------------------------- +-record(calendar_specialist, { + calendar_id :: binary(), + user_id :: binary(), % id пользователя-специалиста + name :: binary(), % отображаемое имя в этом календаре + specialization :: [binary()] | undefined, % список специализаций (услуг) + status :: active | inactive, + added_at :: calendar:datetime(), + updated_at :: calendar:datetime() +}). + -record(location, { address :: binary(), lat :: float(), @@ -77,7 +106,7 @@ description :: binary(), event_type :: single | recurring, start_time :: calendar:datetime(), - duration :: integer(), % минуты + duration :: integer(), % минуты recurrence_rule :: binary() | undefined, master_id :: binary() | undefined, is_instance :: boolean(), @@ -90,6 +119,8 @@ reason :: binary() | undefined, rating_avg :: float(), rating_count :: non_neg_integer(), + attachments :: [binary()] | undefined, + edit_history :: [map()] | undefined, created_at :: calendar:datetime(), updated_at :: calendar:datetime() }). @@ -104,9 +135,11 @@ %% ------------------- Бронирования ------------------------------------ -record(booking, { id :: binary(), - event_id :: binary(), % ссылка на конкретный экземпляр события + event_id :: binary(), % ссылка на конкретный экземпляр события user_id :: binary(), status :: pending | confirmed | cancelled, + notes :: binary() | undefined, + reminder_sent :: boolean(), confirmed_at :: calendar:datetime() | undefined, created_at :: calendar:datetime(), updated_at :: calendar:datetime() @@ -122,6 +155,8 @@ comment :: binary(), status :: visible | hidden | deleted, reason :: binary() | undefined, + likes :: non_neg_integer(), + dislikes :: non_neg_integer(), created_at :: calendar:datetime(), updated_at :: calendar:datetime() }). @@ -142,7 +177,7 @@ -record(banned_word, { id :: binary(), word :: binary(), - added_by :: binary() | undefined, % id администратора, добавившего слово + added_by :: binary() | undefined, % id администратора, добавившего слово added_at :: calendar:datetime() | undefined }). @@ -153,7 +188,7 @@ error_hash :: binary(), error_message :: binary(), stacktrace :: binary(), - context :: binary(), % ← новое поле (term_to_binary) + context :: binary(), % ← новое поле (term_to_binary) count :: non_neg_integer(), first_seen :: calendar:datetime(), last_seen :: calendar:datetime(), @@ -177,14 +212,25 @@ %% ------------------- Аудит ------------------------------------------- -record(admin_audit, { - id :: binary(), - admin_id :: binary(), - email :: binary(), - role :: atom(), - action :: binary(), - entity_type :: binary(), - entity_id :: binary(), - timestamp :: calendar:datetime(), - ip :: binary(), - reason :: binary() | undefined + id :: binary(), + admin_id :: binary(), + email :: binary(), + role :: atom(), + action :: binary(), + entity_type :: binary(), + entity_id :: binary(), + timestamp :: calendar:datetime(), + ip :: binary(), + reason :: binary() | undefined +}). + +%% ------------------- Уведомления (задача #12) ------------------------ +-record(notification, { + id :: binary(), + user_id :: binary(), + type :: booking_confirmed | event_reminder | event_cancelled | custom, + title :: binary(), + body :: binary(), + is_read :: boolean(), + created_at :: calendar:datetime() }). \ No newline at end of file