# 📋 План развития 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` --- **ГОТОВ К РЕАЛИЗАЦИИ! ЖДУ УКАЗАНИЙ!** 🚀