Перейти к основному содержимому

user_activity_daily

user_activity_daily​

Дневные отметки «этот человек был активен в этот день».
Ставятся при сохранении входящего сообщения (message_type = user): в Python-боте (save_message_to_api) и в Node (createBotMessage → markUserActivityDaily).
Удаление из bot_messages / bot_users их не уменьшает.

Миграция 0018_backfill_user_activity_daily.sql при деплое дозаполняет дыры из входящих bot_messages (ON CONFLICT DO NOTHING) — на всех инстансах.

Столбец first_seen_at — копия времени первого появления человека у бота
(из bot_users.registered_at или NOW(), если профиля ещё нет).
Нужен, чтобы разделение на новичков и вернувшихся не зависело от судьбы строки в bot_users.

Columns​

NameTypeDefaultNullableChildrenParentsComment
project_idinteger-NO-bot_projects.idИдентификатор проекта
token_idinteger0NO--Идентификатор токена бота (0 — без сегментации)
daydate-NO--Календарный день активности
user_idbigint-NO--Идентификатор пользователя в Telegram
first_seen_attimestamptz-NO--Время первого появления у бота (не время действия)

Constraints​

NameTypeDefinition
pk_project_id_token_id_day_user_idPRIMARY KEY(project_id, token_id, day, user_id)
fk_project_id_bot_projectsFOREIGN KEY(project_id) → bot_projects(id)

Relations​

ParentChildType
bot_projects.iduser_activity_daily.project_idMany to One