Изменение в моделях баз данных. Добавлен README.md к модулю DataBase с информацией о базе данных.

This commit is contained in:
Armatik 2024-01-02 14:59:10 +03:00
parent 1e7c70078b
commit 7918620b99
7 changed files with 83 additions and 10 deletions

View File

@ -0,0 +1,48 @@
## Модуль DataBase
Модуль DataBase предназначен для ведения и работы с базами данных OCAB.
Модуль содержит в себе следующие таблицы:
* `Chats` - таблица для хранения информации о чатах.
* `Users` - таблица для хранения информации о пользователях.
* `Messages` - таблица для хранения информации о сообщениях.
* `ChatStats` - таблица для хранения статистики чатов по дням.
* `UserStats` - таблица для хранения статистики пользователей по дням.
руктура таблицы `Chats`:
* `chat_id` - идентификатор чата.
* `chat_name` - название чата.
* `chat_type` - тип чата. (0 - Чат администраторов, 1 - Пользовательский чат, 3 - Чат разрешённых личных запросов к боту
10 - Не инициализированный чат)
* `chat_stats` - количество всех отправленных сообщений в чате.
руктура таблицы `Users`:
* `user_id` - идентификатор пользователя telegram.
* `user_tag` - тег пользователя telegram.
* `user_name` - имя пользователя telegram.
* `user_role` - роль пользователя в чате. (0 - Администратор, 1 - Модератор, 2 - Пользователь)
* `user_stats` - количество всех отправленных сообщений пользователем.
* `user_rep` - репутация пользователя.
руктура таблицы `Messages`:
* `message_chat_id` - идентификатор чата в котором отправлено сообщение.
* `message_id` - идентификатор сообщения.
* `messag_sender_id` - идентификатор пользователя отправившего сообщение. Если сообщение отправил бот, то
`messag_sender_id` = 0.
* `answer_to_message_id` - идентификатор сообщения на которое дан ответ. Если ответа нет или ответ на служебное
сообщение о создании топика в чатах с форумным типом, то `answer_to_message_id` = 0.
* `message_ai_model` - идентификатор модели нейросети, которая использовалась для генерации ответа. Если ответ'
сгенерирован не был, то `message_ai_model` = null.
* `message_text` - текст сообщения.
руктура таблицы `ChatStats`:
* `chat_id` - идентификатор чата для которого собрана статистика.
* `date` - дата на которую собрана статистика.
* `messages_count` - количество сообщений отправленных в чат за день.
руктура таблицы `UserStats`:
* `chat_id` - идентификатор чата для которого собрана статистика.
* `user_id` - идентификатор пользователя для которого собрана статистика.
* `date` - дата на которую собрана статистика.
* `messages_count` - количество сообщений отправленных пользователем в чат за день.

View File

@ -2,5 +2,5 @@
"name": "Database",
"description": "Модуль для работы с БД",
"author": "OCAB Team",
"version": "1.0"
"version": "0.1"
}

View File

@ -0,0 +1,9 @@
import peewee as pw
class ChatStats(pw.Model):
class Meta:
...
chat_id = pw.IntegerField(null=False)
date = pw.DateField(null=False)
messages_count = pw.IntegerField(null=False, default=0)

View File

@ -4,6 +4,7 @@ import peewee as pw
class Chats(pw.Model):
class Meta:
...
chat_role = pw.IntegerField(null=False, default=1)
chat_stats = pw.IntegerField(null=False)
chat_federation = pw.IntegerField(null=False)
chat_id = pw.IntegerField(null=False)
chat_name = pw.CharField(null=False)
chat_type = pw.IntegerField(null=False, default=10)
chat_all_stat = pw.IntegerField(null=False)

View File

@ -4,6 +4,10 @@ import peewee as pw
class Messages(pw.Model):
class Meta:
...
message_chat_id = pw.IntegerField(null=False)
message_id = pw.IntegerField(null=False)
message_sender_id = pw.IntegerField(null=False)
answer_to_message_id = pw.IntegerField(null=True)
message_ai_model = pw.TextField(null=True)
message_text = pw.TextField(null=False)
message_id_sender = pw.IntegerField(null=False)
answer_to_id = pw.IntegerField(null=True)

View File

@ -0,0 +1,10 @@
import peewee as pw
class UserStats(pw.Model):
class Meta:
...
chat_id = pw.IntegerField(null=False)
user_id = pw.IntegerField(null=False)
date = pw.DateField(null=False)
messages_count = pw.IntegerField(null=False, default=0)

View File

@ -4,8 +4,9 @@ import peewee as pw
class Users(pw.Model):
class Meta:
...
user_name = pw.CharField(null=False) # до 255 символов
user_id = pw.IntegerField(null=False)
user_tag = pw.CharField(null=True)
user_role = pw.IntegerField(null=True)
user_stats = pw.IntegerField(null=True)
user_rep = pw.IntegerField(null=True)
user_name = pw.CharField(null=False) # до 255 символов
user_role = pw.IntegerField(null=True, default=3)
user_stats = pw.IntegerField(null=True, default=0)
user_rep = pw.IntegerField(null=True, default=0)