From 32f6ca8d5d26fc5dd62c8b550cf5f53b0b8dd10d Mon Sep 17 00:00:00 2001 From: Admin Date: Sat, 28 Feb 2026 10:03:59 +0000 Subject: [PATCH] =?UTF-8?q?docs:=20=D0=9F=D0=BB=D0=B0=D0=BD=20v2.x=20-=20?= =?UTF-8?q?=D0=98=D0=BD=D0=B8=D1=86=D0=B8=D0=B0=D1=82=D0=B8=D0=B2=D0=BD?= =?UTF-8?q?=D0=B0=D1=8F=20=D0=B3=D1=80=D1=83=D0=BF=D0=BF=D0=B0=20=D0=B8=20?= =?UTF-8?q?=D1=83=D0=BF=D1=80=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD=D0=B8=D0=B5=20?= =?UTF-8?q?=D0=B2=D0=BE=D0=BF=D1=80=D0=BE=D1=81=D0=B0=D0=BC=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Qwen-Coder --- ПЛАН_V2_ИНИЦИАТИВНАЯ_ГРУППА.md | 321 +++++++++++++++++++++++++++++++++ 1 file changed, 321 insertions(+) create mode 100644 ПЛАН_V2_ИНИЦИАТИВНАЯ_ГРУППА.md diff --git a/ПЛАН_V2_ИНИЦИАТИВНАЯ_ГРУППА.md b/ПЛАН_V2_ИНИЦИАТИВНАЯ_ГРУППА.md new file mode 100644 index 0000000..cfa425c --- /dev/null +++ b/ПЛАН_V2_ИНИЦИАТИВНАЯ_ГРУППА.md @@ -0,0 +1,321 @@ +# 📋 План развития v2.x — Инициативная группа и Управление вопросами + +**Дата:** 27 февраля 2026 г. +**Статус:** ⏳ Ожидает реализации + +--- + +## 🎯 Концепция + +**Инициативная группа (ИГ)** — активные жильцы, которые управляют домом. Им нужны: +- Отдельная рассылка +- Возможность создавать вопросы/предложения +- Статусы по вопросам (в работе, на будущем, решено) +- Прямое взаимодействие через Telegram + +--- + +## 📊 НОВАЯ ФУНКЦИОНАЛЬНОСТЬ (v2.x) + +### 1️⃣ Инициативная группа как сущность + +| № | Функция | Описание | Приоритет | +|---|---------|----------|-----------| +| 1.1 | Модель `InitiativeGroup` в БД | Таблица с участниками ИГ | 🔴 Высокий | +| 1.2 | Поле `is_initiative` в `users` | Флаг участника ИГ | 🔴 Высокий | +| 1.3 | Команда `/ig_add ` | Добавить в ИГ (админ) | 🔴 Высокий | +| 1.4 | Команда `/ig_remove ` | Удалить из ИГ (админ) | 🔴 Высокий | +| 1.5 | Команда `/ig_list` | Список участников ИГ | 🔴 Высокий | +| 1.6 | Команда `/ig_only` | Режим рассылки только ИГ | 🟡 Средний | + +--- + +### 2️⃣ Рассылки для инициативной группы + +| № | Функция | Описание | Приоритет | +|---|---------|----------|-----------| +| 2.1 | Команда `/ig_broadcast` | Рассылка только ИГ | 🔴 Высокий | +| 2.2 | Команда `/broadcast_select` | Выбор аудитории (все/ИГ/квартира) | 🔴 Высокий | +| 2.3 | Шаблон "Только ИГ" | Префикс в сообщениях | 🟡 Средний | +| 2.4 | Статистика прочтения | Кто прочитал в ИГ | 🟢 Низкий | + +--- + +### 3️⃣ Управление вопросами/предложениями + +| № | Функция | Описание | Приоритет | +|---|---------|----------|-----------| +| 3.1 | Модель `Issue` в БД | Вопросы/предложения жильцов | 🔴 Высокий | +| 3.2 | Статусы вопросов | `new`, `in_work`, `on_hold`, `resolved`, `rejected` | 🔴 Высокий | +| 3.3 | Команда `/issue_create` | Создать вопрос (ИГ) | 🔴 Высокий | +| 3.4 | Команда `/issue_list` | Список вопросов | 🔴 Высокий | +| 3.5 | Команда `/issue_status <статус>` | Изменить статус (ИГ) | 🔴 Высокий | +| 3.6 | Команда `/issue_view ` | Просмотр деталей | 🔴 Высокий | +| 3.7 | Команда `/issue_my` | Мои вопросы (жильцы) | 🟡 Средний | +| 3.8 | Приоритеты вопросов | `low`, `medium`, `high`, `critical` | 🟡 Средний | +| 3.9 | Назначение ответственного | Кто работает над вопросом | 🟡 Средний | +| 3.10 | Комментарии к вопросам | Обсуждение внутри вопроса | 🟢 Низкий | + +--- + +### 4️⃣ Предложения от жильцов (через Telegram) + +| № | Функция | Описание | Приоритет | +|---|---------|----------|-----------| +| 4.1 | Команда `/propose` | Создать предложение (все) | 🔴 Высокий | +| 4.2 | Модерация предложений | ИГ подтверждает/отклоняет | 🔴 Высокий | +| 4.3 | Команда `/propose_list` | Список предложений | 🟡 Средний | +| 4.4 | Голосование за предложения | Жильцы голосуют за важные | 🟡 Средний | +| 4.5 | Авто-создание вопроса | Если предложение набрало N голосов | 🟢 Низкий | + +--- + +### 5️⃣ Статусы и уведомления + +| № | Функция | Описание | Приоритет | +|---|---------|----------|-----------| +| 5.1 | Уведомление о новом вопросе | ИГ получает уведомление | 🔴 Высокий | +| 5.2 | Уведомление о смене статуса | Автор вопроса получает | 🔴 Высокий | +| 5.3 | Уведомление о комментарии | Участникам вопроса | 🟡 Средний | +| 5.4 | Еженедельный отчёт ИГ | Какие вопросы в работе | 🟢 Низкий | + +--- + +### 6️⃣ Веб-интерфейс для ИГ (расширение) + +| № | Функция | Описание | Приоритет | +|---|---------|----------|-----------| +| 6.1 | Страница "Вопросы" | Список всех вопросов | 🔴 Высокий | +| 6.2 | Фильтры по статусам | new/in_work/resolved | 🔴 Высокий | +| 6.3 | Редактирование вопроса | Изменить статус, ответственного | 🔴 Высокий | +| 6.4 | Дашборд ИГ | Статистика по вопросам | 🟡 Средний | +| 6.5 | Экспорт вопросов | CSV/Excel отчёт | 🟢 Низкий | + +--- + +## 🗄️ БАЗА ДАННЫХ (новые таблицы) + +### Таблица `initiative_group` +```sql +CREATE TABLE initiative_group ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + user_id BIGINT NOT NULL UNIQUE, + role TEXT DEFAULT 'member', -- admin, member + joined_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + is_active BOOLEAN DEFAULT 1, + FOREIGN KEY (user_id) REFERENCES users(user_id) +) +``` + +### Таблица `issues` +```sql +CREATE TABLE issues ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + title TEXT NOT NULL, + description TEXT, + status TEXT DEFAULT 'new', -- new, in_work, on_hold, resolved, rejected + priority TEXT DEFAULT 'medium', -- low, medium, high, critical + created_by BIGINT NOT NULL, + assigned_to BIGINT, -- кто работает + apartment VARCHAR(10), -- квартира заявителя + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + updated_at TIMESTAMP, + resolved_at TIMESTAMP, + FOREIGN KEY (created_by) REFERENCES users(user_id), + FOREIGN KEY (assigned_to) REFERENCES users(user_id) +) +``` + +### Таблица `issue_comments` +```sql +CREATE TABLE issue_comments ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + issue_id INTEGER NOT NULL, + user_id BIGINT NOT NULL, + message TEXT NOT NULL, + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + FOREIGN KEY (issue_id) REFERENCES issues(id), + FOREIGN KEY (user_id) REFERENCES users(user_id) +) +``` + +### Таблица `proposals` +```sql +CREATE TABLE proposals ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + title TEXT NOT NULL, + description TEXT, + user_id BIGINT NOT NULL, + votes_count INTEGER DEFAULT 0, + status TEXT DEFAULT 'pending', -- pending, approved, rejected + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + FOREIGN KEY (user_id) REFERENCES users(user_id) +) +``` + +### Таблица `proposal_votes` +```sql +CREATE TABLE proposal_votes ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + proposal_id INTEGER NOT NULL, + user_id BIGINT NOT NULL, + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + UNIQUE(proposal_id, user_id), + FOREIGN KEY (proposal_id) REFERENCES proposals(id), + FOREIGN KEY (user_id) REFERENCES users(user_id) +) +``` + +--- + +## 📱 НОВЫЕ КОМАНДЫ (список) + +### Для админов / ИГ: +``` +/ig_add — Добавить в ИГ +/ig_remove — Удалить из ИГ +/ig_list — Список ИГ +/ig_broadcast — Рассылка только ИГ +/broadcast_select — Выбор аудитории + +/issue_create — Создать вопрос +/issue_list — Список вопросов +/issue_status <статус>— Изменить статус +/issue_view — Просмотр деталей +/issue_assign — Назначить ответственного + +/proposal_approve — Одобрить предложение +/proposal_reject — Отклонить предложение +``` + +### Для всех жильцов: +``` +/propose — Создать предложение +/propose_list — Список предложений +/issue_my — Мои вопросы +/vote — Проголосовать за предложение +``` + +--- + +## 🎯 СЦЕНАРИИ ИСПОЛЬЗОВАНИЯ + +### Сценарий 1: Добавление в ИГ +``` +Админ: /ig_add 123456789 +Бот: ✅ Пользователь Иван Иванов добавлен в инициативную группу +``` + +### Сценарий 2: Рассылка только ИГ +``` +Админ: /ig_broadcast +Бот: Отправьте сообщение для инициативной группы: +Админ: Срочно! Завтра собрание в 19:00 +Бот: ✅ Рассылка отправлена 5 участникам ИГ +``` + +### Сценарий 3: Создание вопроса +``` +ИГ: /issue_create +Бот: Введите название вопроса: +ИГ: Протечка в подъезде №2 +Бот: Введите описание: +ИГ: Течёт крыша, нужна УК +Бот: ✅ Вопрос создан #42 + Статус: new + Ответственный: не назначен +``` + +### Сценарий 4: Изменение статуса +``` +ИГ: /issue_status 42 in_work +Бот: ✅ Вопрос #42 переведён в статус "В работе" + Автор уведомлён +``` + +### Сценарий 5: Предложение от жильца +``` +Жилец: /propose +Бот: Введите ваше предложение: +Жилец: Установить видеонаблюдение во дворе +Бот: ✅ Предложение создано #15 + Для активации нужно 10 голосов + Текущих: 0 + +Другой жилец: /vote 15 +Бот: ✅ Вы проголосовали за предложение #15 + Голосов: 1/10 +``` + +--- + +## 📊 ТАБЛИЦА ВСЕХ НОВЫХ ФУНКЦИЙ (итоговая) + +| № | Функция | Версия | Статус | Приоритет | +|---|---------|--------|--------|-----------| +| 1.1 | Модель `InitiativeGroup` в БД | v2.1 | ⏳ Ожидает | 🔴 | +| 1.2 | Поле `is_initiative` в `users` | v2.1 | ⏳ Ожидает | 🔴 | +| 1.3 | Команда `/ig_add` | v2.1 | ⏳ Ожидает | 🔴 | +| 1.4 | Команда `/ig_remove` | v2.1 | ⏳ Ожидает | 🔴 | +| 1.5 | Команда `/ig_list` | v2.1 | ⏳ Ожидает | 🔴 | +| 2.1 | Команда `/ig_broadcast` | v2.1 | ⏳ Ожидает | 🔴 | +| 2.2 | Команда `/broadcast_select` | v2.1 | ⏳ Ожидает | 🔴 | +| 3.1 | Модель `Issue` в БД | v2.2 | ⏳ Ожидает | 🔴 | +| 3.2 | Статусы вопросов | v2.2 | ⏳ Ожидает | 🔴 | +| 3.3 | Команда `/issue_create` | v2.2 | ⏳ Ожидает | 🔴 | +| 3.4 | Команда `/issue_list` | v2.2 | ⏳ Ожидает | 🔴 | +| 3.5 | Команда `/issue_status` | v2.2 | ⏳ Ожидает | 🔴 | +| 3.6 | Команда `/issue_view` | v2.2 | ⏳ Ожидает | 🔴 | +| 4.1 | Команда `/propose` | v2.3 | ⏳ Ожидает | 🔴 | +| 4.2 | Модерация предложений | v2.3 | ⏳ Ожидает | 🔴 | +| 4.3 | Команда `/propose_list` | v2.3 | ⏳ Ожидает | 🟡 | +| 4.4 | Голосование за предложения | v2.3 | ⏳ Ожидает | 🟡 | +| 5.1 | Уведомление о новом вопросе | v2.2 | ⏳ Ожидает | 🔴 | +| 5.2 | Уведомление о смене статуса | v2.2 | ⏳ Ожидает | 🔴 | +| 6.1 | Страница "Вопросы" (веб) | v2.4 | ⏳ Ожидает | 🔴 | +| 6.2 | Фильтры по статусам (веб) | v2.4 | ⏳ Ожидает | 🔴 | + +--- + +## 🗺️ ДОРОЖНАЯ КАРТА + +### v2.1 — Инициативная группа (1-2 дня) +- ✅ Модель в БД +- ✅ Команды `/ig_add`, `/ig_remove`, `/ig_list` +- ✅ Рассылка только ИГ + +### v2.2 — Управление вопросами (2-3 дня) +- ✅ Модель `Issue` в БД +- ✅ Команды создания/просмотра/статусов +- ✅ Уведомления о сменах + +### v2.3 — Предложения от жильцов (2 дня) +- ✅ Команда `/propose` +- ✅ Голосование +- ✅ Модерация ИГ + +### v2.4 — Веб-интерфейс для ИГ (2-3 дня) +- ✅ Страница вопросов +- ✅ Фильтры и редактирование +- ✅ Дашборд + +--- + +## 📝 ЗАМЕТКИ + +### Важные решения: +1. **ИГ как отдельная таблица** или поле в `users`? + - ✅ Решил: **И то и то** — отдельная таблица для ролей + поле для быстрого доступа + +2. **Кто может создавать вопросы?** + - ✅ Решил: **Все жильцы**, но модерация ИГ + +3. **Сколько голосов для активации предложения?** + - ✅ Решил: **Настраиваемо** (по умолчанию 10% от жильцов) + +4. **Удалять ли вопросы?** + - ✅ Решил: **Нет**, только статус `resolved` или `rejected` + +--- + +**ГОТОВ К РЕАЛИЗАЦИИ! ЖДУ УКАЗАНИЙ!** 🚀