domovoy_bot/DEVELOPMENT_PLAN.md

445 lines
14 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 📋 План разработки v1.1 — v1.14
**Дата начала:** 26 февраля 2026 г.
**Текущая версия:** v1.14 ✅ Календарь событий дома
**Следующая версия:** v2.0 (AI-Юрист)
---
## 🎯 Очередь реализации
### ✅ v1.0 MVP — Зафиксировано (26.02.2026)
**Бекап:** `backups/versions/v1.0_mvp_2026-02-26/`
---
### ✅ v1.14 — Календарь событий дома — ЗАВЕРШЕНО (27.02.2026)
**Статус:** ✅ Завершено
**Функционал:**
- [x] Модели Event, EventParticipant — события и участники
- [x] Создание событий админом (/event_add)
- [x] Запись на участие (/join)
- [x] Отписка от события (/leave)
- [x] Просмотр предстоящих событий (/events)
- [x] Мои события (/my_events)
- [x] Список участников (/participants)
- [x] Отмена события (/event_cancel)
- [x] Авто-напоминания за 24 часа
**Файлы:**
- `database/models.py` ✅ (Event, EventParticipant)
- `database/migrate_add_events.py`
- `services/events.py`
- `handlers/events.py`
- `services/scheduler.py` ✅ (дополнен)
- `КАЛЕНДАРЬ_СОБЫТИЙ.md`
---
### ✅ v1.13 — Система благодарностей — ЗАВЕРШЕНО (27.02.2026)
**Статус:** ✅ Завершено
**Функционал:**
- [x] FastAPI приложение
- [x] Дашборд со статистикой
- [x] Страница пользователей с поиском
- [x] Страница экспорта
- [x] Страница настроек
- [x] API endpoints (/api/stats, /api/users, /api/export)
- [x] HTTP Basic авторизация
- [x] Интеграция с ботом
**Файлы:**
- `web/app.py`
- `web/templates/*.html`
- `services/web_server.py`
- `main.py` ✅ (дополнен)
- `ВЕБ_ИНТЕРФЕЙС.md`
```sql
CREATE TABLE polls (
poll_id INTEGER PRIMARY KEY,
message_id BIGINT,
question TEXT,
options JSON,
votes JSON,
created_by BIGINT,
created_at TIMESTAMP,
is_active BOOLEAN DEFAULT TRUE
)
```
**Файлы:**
- `database/models.py` — модель Poll ✅
- `database/migrate_add_polls.py` — миграция ✅
- `handlers/polls.py` — хендлеры ✅
- `keyboards/inline.py` — кнопки ✅
- `ОПРОСЫ.md` — документация ✅
**Критерии приёмки:**
- [ ] Админ создаёт опрос в чате
- [ ] Жильцы голосуют кнопками
- [ ] Результаты обновляются
- [ ] Повторное голосование блокируется
- [ ] Повторное голосование блокируется
---
### ⏳ v1.2 — Чёрный список ссылок
**Статус:** ⏳ Ожидает
**Функционал:**
- [ ] Файл `data/bad_domains.json` со списком доменов
- [ ] Проверка всех сообщений на наличие ссылок
- [ ] Авто-удаление сообщений со спам-доменами
- [ ] Предупреждение пользователю в личку
- [ ] Учёт предупреждений (3 → бан)
- [ ] Команды: `/add_domain`, `/remove_domain`, `/domains`
**Пример bad_domains.json:**
```json
{
"domains": [
"spam.com",
"phishing-site.ru",
"fake-giveaway.xyz"
],
"patterns": [
"t.me/spam_",
"vk.com/fake_"
]
}
```
**Файлы:**
- `handlers/antispam.py` (новый)
- `data/bad_domains.json` (новый)
- `services/antispam.py` (новый)
---
### ⏳ v1.3 — Анти-спам (лимиты сообщений)
**Статус:** ⏳ Ожидает
**Функционал:**
- [ ] Счётчик сообщений за период (10 сообщений за 1 минуту)
- [ ] При превышении — мут на N минут
- [ ] Предупреждение админу
- [ ] Настройка лимитов в конфиге
- [ ] Исключения для админов и верифицированных
**Конфигурация:**
```ini
# Лимиты анти-спама
SPAM_LIMIT=10 # сообщений
SPAM_PERIOD=60 # секунд
MUTEDURATION=30 # минут мута
```
**Файлы:**
- `services/antispam.py` (дополнить)
- `database/models.py` (добавить поле `is_muted`)
- `handlers/mute.py` (новый)
---
### ⏳ v1.4 — Расписание отключений (вода/свет)
**Статус:** ⏳ Ожидает
**Функционал:**
- [ ] Админ создаёт событие: `/schedule_add вода 25.02 10:00 14:00`
- [ ] Сохранение в БД
- [ ] Напоминание за 1 час до отключения
- [ ] Команда `/график` — ближайшие события
- [ ] Авто-удаление прошедших событий
**Таблица БД:**
```sql
CREATE TABLE schedules (
schedule_id INTEGER PRIMARY KEY,
type TEXT, -- вода, свет, отопление
title TEXT,
start_time TIMESTAMP,
end_time TIMESTAMP,
created_by BIGINT,
reminder_sent BOOLEAN DEFAULT FALSE
)
```
**Файлы:**
- `handlers/schedule.py` (новый)
- `database/models.py` (добавить Schedule)
- `services/scheduler.py` (дополнить)
---
### ⏳ v1.5 — Доска объявлений (соседская)
**Статус:** ⏳ Ожидает
**Функционал:**
- [ ] Команда `/ad продам диван 5000р`
- [ ] Публикация в канал-витрину
- [ ] Категории: отдам, продам, куплю, потеряно, найду
- [ ] Авто-удаление через 7 дней
- [ ] Команда `/ads` — список активных
- [ ] Модерация админом (опционально)
**Таблица БД:**
```sql
CREATE TABLE ads (
ad_id INTEGER PRIMARY KEY,
user_id BIGINT,
category TEXT, -- sell, give, buy, lost, found
title TEXT,
description TEXT,
price INTEGER,
phone TEXT,
created_at TIMESTAMP,
expires_at TIMESTAMP,
is_active BOOLEAN DEFAULT TRUE
)
```
**Файлы:**
- `handlers/ads.py` (новый)
- `database/models.py` (добавить Ad)
- `services/scheduler.py` (дополнить проверку)
---
### ⏳ v1.6 — Напоминания о платежах ЖКХ
**Статус:** ⏳ Ожидает
**Функционал:**
- [ ] Админ задаёт дату платежа (до 10 числа)
- [ ] Бот рассылает напоминание 5-го и 9-го числа
- [ ] Ссылка на квитанцию/онлайн-оплату
- [ ] Статистика: кто получил, кто открыл
**Файлы:**
- `handlers/payments.py` (новый)
- `services/scheduler.py` (дополнить)
- `data/payment_links.json` (новый)
---
### ⏳ v1.7 — Детект мультиаккаунтов
**Статус:** ⏳ Ожидает
**Функционал:**
- [ ] Анализ паттернов активности
- [ ] Одинаковое время активности
- [ ] Стиль письма (NLP анализ)
- [ ] Проверка по device ID (если доступно)
- [ ] Уведомление: "В квартире 45 — 3 аккаунта"
- [ ] Команда `/multicheck <apt>` — проверка квартиры
**Файлы:**
- `services/multicount_detector.py` (новый)
- `handlers/admin.py` (дополнить)
---
### ⏳ v1.8 — Облако тегов тем чата
**Статус:** ⏳ Ожидает
**Функционал:**
- [ ] AI-классификация сообщений по темам
- [ ] Топ тем за неделю/месяц
- [ ] Визуализация: "лифты: 45%, парковка: 23%"
- [ ] Команда `/topics` — облако тегов
**Файлы:**
- `services/topics_analyzer.py` (новый)
- `handlers/analytics.py` (дополнить)
---
### ⏳ v1.9 — Рейтинг токсичности
**Статус:** ⏳ Ожидает
**Функционал:**
- [ ] Анализ лексики (оскорбления, агрессия)
- [ ] Жалобы от жильцов (`/complaint @user`)
- [ ] Топ-10 самых токсичных
- [ ] Уведомление админу при превышении порога
**Файлы:**
- `services/toxicity_detector.py` (новый)
- `handlers/security.py` (дополнить)
---
### ⏳ v1.10 — История версий профиля
**Статус:** ⏳ Ожидает
**Функционал:**
- [ ] Лог изменений: "20.02: user123 → @patriot"
- [ ] Сохранение старых username
- [ ] Команда `/history <user_id>` — история изменений
**Таблица БД:**
```sql
CREATE TABLE profile_history (
id INTEGER PRIMARY KEY,
user_id BIGINT,
field TEXT, -- username, first_name, last_name
old_value TEXT,
new_value TEXT,
changed_at TIMESTAMP
)
```
**Файлы:**
- `database/models.py` (добавить ProfileHistory)
- `handlers/chat_monitor.py` (дополнить)
---
### ⏳ v1.11 — Веб-интерфейс админа
**Статус:** ⏳ Ожидает
**Функционал:**
- [ ] Flask/FastAPI сервер
- [ ] Дашборд с графиками
- [ ] Управление пользователями
- [ ] Экспорт в Excel/CSV
- [ ] Логи сообщений с поиском
**Файлы:**
- `web/app.py` (новый)
- `web/templates/` (новые)
- `web/routes.py` (новый)
---
### ⏳ v1.12 — Достижения жильцов
**Статус:** ⏳ Ожидает
**Функционал:**
- [ ] "Активист" — 100 сообщений
- [ ] "Помощник" — помог 5 соседям
- [ ] "Бдительный" — сообщил о проблеме
- [ ] Команда `/achievements` — список достижений
- [ ] Отображение в профиле
**Таблица БД:**
```sql
CREATE TABLE achievements (
id INTEGER PRIMARY KEY,
user_id BIGINT,
achievement_type TEXT,
earned_at TIMESTAMP
)
```
**Файлы:**
- `handlers/achievements.py` (новый)
- `database/models.py` (добавить Achievement)
---
### ⏳ v1.13 — Система благодарностей
**Статус:** ⏳ Ожидает
**Функционал:**
- [ ] Команда `/thank @user за помощь`
- [ ] +10 рейтинга получателю
- [ ] Лог благодарностей
- [ ] Команда `/thanks <user_id>` — история
**Файлы:**
- `handlers/thanks.py` (новый)
- `database/models.py` (добавить Thank)
---
### ⏳ v1.14 — Календарь событий дома
**Статус:** ⏳ Ожидает
**Функционал:**
- [ ] Собрания, праздники, субботники
- [ ] Команда `/event_add "Субботник" 28.02 10:00`
- [ ] Напоминание за день
- [ ] Список участников
- [ ] Команда `/events` — ближайшие события
**Таблица БД:**
```sql
CREATE TABLE events (
event_id INTEGER PRIMARY KEY,
title TEXT,
description TEXT,
event_time TIMESTAMP,
location TEXT,
created_by BIGINT,
attendees JSON -- [user_ids]
)
```
**Файлы:**
- `handlers/events.py` (новый)
- `database/models.py` (добавить Event)
---
### 🔮 v2.0 — AI-Юрист (NotebookLM)
**Статус:** 🔮 Будущее (после всех v1.x)
**Функционал:**
- [ ] Интеграция с Google NotebookLM API
- [ ] База знаний: ЖК РФ, ГК РФ, договор управления
- [ ] Генерация шаблонов жалоб
- [ ] Консультации 24/7
---
## 📊 Прогресс
```
v1.0 ✅✅✅✅✅✅✅✅✅✅ 100% (зафиксировано)
v1.1 ✅✅✅✅✅✅✅✅✅✅ 100% (завершено)
v1.2 ✅✅✅✅✅✅✅✅✅✅ 100% (завершено)
v1.3 ✅✅✅✅✅✅✅✅✅✅ 100% (завершено)
v1.4 ✅✅✅✅✅✅✅✅✅✅ 100% (завершено)
v1.5 ✅✅✅✅✅✅✅✅✅✅ 100% (завершено)
v1.6 ✅✅✅✅✅✅✅✅✅✅ 100% (завершено)
v1.7 ✅✅✅✅✅✅✅✅✅✅ 100% (завершено)
v1.8 ✅✅✅✅✅✅✅✅✅✅ 100% (завершено)
v1.9 ✅✅✅✅✅✅✅✅✅✅ 100% (завершено)
v1.10 ✅✅✅✅✅✅✅✅✅✅ 100% (завершено)
v1.11 ✅✅✅✅✅✅✅✅✅✅ 100% (завершено)
v1.12 ✅✅✅✅✅✅✅✅✅✅ 100% (завершено)
v1.13 ✅✅✅✅✅✅✅✅✅✅ 100% (завершено)
v1.14 ✅✅✅✅✅✅✅✅✅✅ 100% (завершено)
v2.0 🔮 Будущее
```
---
**Всего функций:** 15
**Завершено:** 15 (v1.0, v1.1-v1.14) ✅
**В работе:** 0
**Ожидает:** 0
🎉 **ВСЕ ФУНКЦИИ v1.x РЕАЛИЗОВАНЫ!** 🎉
---
*Документ обновляется после каждой версии*
---
## 🤖 v4.3 — AI Voice & Media (Whisper AI) — ЗАВЕРШЕНО (22.04.2026)
**Статус:** ✅ Завершено
**Функционал:**
- [x] Интеграция модели Faster-Whisper (small) для CPU
- [x] Авто-расшифровка голосовых сообщений (Voice)
- [x] Авто-расшифровка видео-сообщений (Video Notes / Кружочки)
- [x] Исправлена проблема с системными путями ffmpeg/ffprobe в systemd
- [x] Логирование расшифровок в базу данных `voice_recognition_logs`
**Планы на будущее:**
- [ ]**Расшифровка для жильцов:** Разрешить верифицированным пользователям использовать расшифровку (с квотой, например, 3 сообщения в день).
- [ ] 🧠 **AI-Ассистент:** Использование Gemini API для ответов на вопросы жильцов по базе знаний дома.