Репозиторий разработки backend`a
docker-compose up --build- Если надо новые, то надо удалить ModelSnapshot (не знаю почему, если этого не сделать миграции будут пустые)
-
event_type: тип мероприятия'general'— общее мероприятие (митапы, тимбилдинги и т.п.)'personal'— персональное (1:1 встречи, консультации)'group'— групповое (для команд или проектов)
-
application_status: статус заявки спикера'pending'— ожидает рассмотрения'approved'— одобрено'rejected'— отклонено
Хранит информацию о пользователях системы.
| Поле | Тип | Описание |
|---|---|---|
id |
INTEGER | Уникальный идентификатор |
login |
VARCHAR(32) | Уникальный логин |
password_hash |
VARCHAR(255) | Хэш пароля |
name |
VARCHAR(32) | Имя пользователя |
surname |
VARCHAR(64) | Фамилия пользователя |
email |
VARCHAR(64) | Email (необязательный) |
telegram_id |
VARCHAR(32) | Telegram ID для уведомлений (необязательный) |
notification_preferences_id |
INTEGER | Связь с таблицей notification_preferences |
avatar |
BYTEA | Фото пользователя |
Настройки уведомлений для каждого пользователя.
| Поле | Тип | Описание |
|---|---|---|
id |
INTEGER | Уникальный ID |
notify_telegram |
BOOLEAN | Уведомления в Telegram |
notify_email |
BOOLEAN | Уведомления на Email |
reminder_before_1day |
BOOLEAN | Напоминание за 1 день |
reminder_before_1hour |
BOOLEAN | Напоминание за 1 час |
Мероприятия, созданные пользователями.
| Поле | Тип | Описание |
|---|---|---|
id |
INTEGER | Уникальный идентификатор |
name |
VARCHAR(64) | Название мероприятия |
description |
TEXT | Описание мероприятия |
time_start |
TIMESTAMP | Время начала |
time_end |
TIMESTAMP | Время окончания |
type |
ENUM (event_type) | general, personal, group |
location |
VARCHAR(1000) | Место проведения |
created_by |
INTEGER | Автор события (FK users.id) |
keywords |
JSONB | Ключевые слова (по умолчанию — пустой список []) |
Связь участников с мероприятиями.
| Поле | Тип | Описание |
|---|---|---|
user_id |
INTEGER | ID пользователя |
event_id |
INTEGER | ID мероприятия |
is_speaker |
BOOLEAN | Является ли спикером |
attendance_marked |
BOOLEAN | Отметка о присутствии |
Связь фотография с мероприятиями
| Поле | Тип | Описание |
|---|---|---|
id |
INTEGER | Уникальный идентификатор изображения |
event_id |
INTEGER | ID мероприятия, к которому привязано фото (FK events.id) |
image |
BYTEA | Бинарные данные изображения |
mime_type |
VARCHAR(20) | MIME-тип изображения (например, image/jpeg, image/png) |
uploaded_at |
TIMESTAMP | Дата и время загрузки изображения |
description |
TEXT | Описание или подпись к изображению (необязательно) |
Отзывы и оценки пользователей о мероприятиях.
| Поле | Тип | Описание |
|---|---|---|
id |
INTEGER | Уникальный ID |
user_id |
INTEGER | Кто оставил отзыв |
event_id |
INTEGER | Какое мероприятие |
rating |
SMALLINT | Оценка от 1 до 5 |
created_at |
TIMESTAMP | Дата и время отзыва |
comment |
TEXT | Комментарий (необязательный) |
Заявки сотрудников на выступление.
| Поле | Тип | Описание |
|---|---|---|
id |
INTEGER | Уникальный ID |
user_id |
INTEGER | Автор заявки |
event_id |
INTEGER | Целевое мероприятие |
topic |
TEXT | Тема выступления |
status |
ENUM(application_status) | pending, approved, rejected (по умолчанию pending) |
created_at |
TIMESTAMP | Дата подачи |
Команды, к которым могут принадлежать пользователи и события.
| Поле | Тип | Описание |
|---|---|---|
id |
INTEGER | Уникальный идентификатор команды |
name |
VARCHAR(255) | Название команды (уникальное) |
description |
TEXT | Описание команды (необязательно) |
Связь пользователей и команд (многие ко многим).
| Поле | Тип | Описание |
|---|---|---|
user_id |
INTEGER | ID пользователя |
team_id |
INTEGER | ID команды |