Анализ и расширение структуры таблиц #12

This commit is contained in:
2026-05-02 23:13:49 +03:00
parent f36dd3bbc1
commit eee6eebc74

View File

@@ -10,6 +10,13 @@
role :: user | bot, role :: user | bot,
status :: active | frozen | deleted, status :: active | frozen | deleted,
reason :: binary() | undefined, 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(), created_at :: calendar:datetime(),
updated_at :: calendar:datetime() updated_at :: calendar:datetime()
}). }).
@@ -28,6 +35,12 @@
password_hash :: binary(), password_hash :: binary(),
role :: superadmin | admin | moderator | support, role :: superadmin | admin | moderator | support,
status :: active | blocked, 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(), created_at :: calendar:datetime(),
updated_at :: calendar:datetime() updated_at :: calendar:datetime()
}). }).
@@ -46,6 +59,11 @@
owner_id :: binary(), owner_id :: binary(),
title :: binary(), title :: binary(),
description :: binary(), description :: binary(),
short_name :: binary() | undefined,
category :: binary() | undefined,
color :: binary() | undefined,
image_url :: binary() | undefined,
settings :: map() | undefined,
tags :: [binary()], tags :: [binary()],
type :: personal | commercial, type :: personal | commercial,
confirmation :: auto | manual | {timeout, integer()}, % секунд confirmation :: auto | manual | {timeout, integer()}, % секунд
@@ -63,6 +81,17 @@
rights :: read | write | admin 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, { -record(location, {
address :: binary(), address :: binary(),
lat :: float(), lat :: float(),
@@ -90,6 +119,8 @@
reason :: binary() | undefined, reason :: binary() | undefined,
rating_avg :: float(), rating_avg :: float(),
rating_count :: non_neg_integer(), rating_count :: non_neg_integer(),
attachments :: [binary()] | undefined,
edit_history :: [map()] | undefined,
created_at :: calendar:datetime(), created_at :: calendar:datetime(),
updated_at :: calendar:datetime() updated_at :: calendar:datetime()
}). }).
@@ -107,6 +138,8 @@
event_id :: binary(), % ссылка на конкретный экземпляр события event_id :: binary(), % ссылка на конкретный экземпляр события
user_id :: binary(), user_id :: binary(),
status :: pending | confirmed | cancelled, status :: pending | confirmed | cancelled,
notes :: binary() | undefined,
reminder_sent :: boolean(),
confirmed_at :: calendar:datetime() | undefined, confirmed_at :: calendar:datetime() | undefined,
created_at :: calendar:datetime(), created_at :: calendar:datetime(),
updated_at :: calendar:datetime() updated_at :: calendar:datetime()
@@ -122,6 +155,8 @@
comment :: binary(), comment :: binary(),
status :: visible | hidden | deleted, status :: visible | hidden | deleted,
reason :: binary() | undefined, reason :: binary() | undefined,
likes :: non_neg_integer(),
dislikes :: non_neg_integer(),
created_at :: calendar:datetime(), created_at :: calendar:datetime(),
updated_at :: calendar:datetime() updated_at :: calendar:datetime()
}). }).
@@ -188,3 +223,14 @@
ip :: binary(), ip :: binary(),
reason :: binary() | undefined 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()
}).