# Контекст сессии разработки

**Последнее обновление:** вторник, 24 февраля 2026 г. (вечер)
**Время:** ~11:00

---

## 📊 Описание проекта: Домовой Бот

Telegram-бот для управления жилым сообществом (дом/ЖК).

### Архитектура
- **Фреймворк:** aiogram 3.x (асинхронный)
- **База данных:** SQLite + SQLAlchemy (async)
- **Прокси:** socks5 (xray) для обхода РКН
- **Планировщик:** APScheduler

### Структура проекта
```
domovoy_bot/
├── config.py              # Конфигурация (токен, админы, прокси)
├── main.py                # Точка входа
├── requirements.txt       # Зависимости
├── .env / .env.example   # Переменные окружения
│
├── database/
│   ├── models.py         # Модели: User, Message, Service, VerificationRequest, SpyLog, Announcement
│   ├── db.py             # Асинхронная сессия
│   └── init_db.py        # Инициализация БД
│
├── handlers/             # Роутеры aiogram
│   ├── admin.py          # Админ-команды
│   ├── users.py          # Пользовательские команды
│   ├── phones.py         # Управление телефонами
│   ├── verification.py   # Верификация жильцов
│   ├── chat_monitor.py   # Мониторинг чата
│   ├── security.py       # Безопасность/анти-мат
│   ├── apartments.py     # Квартиры
│   └── antimat.py        # Анти-мат
│
├── services/
│   ├── spy_detector.py   # Детект шпионов (score 0-100)
│   ├── analytics.py      # Аналитика чата
│   └── scheduler.py      # Планировщик задач
│
├── utils/
│   ├── decorators.py     # @admin_only
│   ├── formatters.py     # Форматирование вывода
│   └── validators.py     # Валидация телефонов
│
└── keyboards/            # Inline/reply клавиатуры
```

---

## ✅ Реализованный функционал

### 1. Пользователи
- Регистрация через `/start`
- Верификация по номеру квартиры
- Привязка телефона (`/myphone`, `/add_phone`, `/edit_phone`, `/remove_phone`)
- Профиль пользователя с квартирой и сообщением

### 2. Детект шпионов (Spy Detector)
**Факторы риска:**
- Нет аватарки: +10
- Generic username (user12345): +15
- Не верифицирован: +25
- Провокационные сообщения: +30
- Активность в офисные часы: +15
- Мультиаккаунт: +50

**Пороги:**
- 0-30: Норма 🟢
- 31-60: Подозрительный 🟡
- 61+: Шпион 🔴 (уведомление админа)

### 3. Админ-панель
- `/admin` — главное меню
- `/stats` — статистика чата
- `/spies` — список шпионов
- `/users` — пользователи (50 последних)
- `/export` — экспорт в JSON
- `/revoke <ID>` — снять верификацию
- `/phone <ID>` — показать телефон

### 4. Телефоны
- **Команды админа:**
  - `/add_phone <ID> <тел>` — добавить
  - `/edit_phone <ID> <тел>` — изменить
  - `/remove_phone <ID>` — удалить
  - `/phone <ID>` — показать

- **Команда пользователя:**
  - `/myphone <тел>` — установить свой телефон

### 5. Планировщик
- Еженедельный экспорт (воскресенье 03:00)
- Ежедневная проверка шпионов (02:00)
- Обновление активности (ежечасно)

---

## ✅ Выполнено в этой сессии

### Система рейтинга пользователей (24.02.2026)
**Реализовано:**
1. ✅ Добавлены поля в модель User: `rating` (баллы), `level` (уровень)
2. ✅ Миграция БД выполнена — поля добавлены
3. ✅ Начисление +1 балл за каждое сообщение
4. ✅ Уровни: Новичок (0-99), Сосед (100-499), Активист (500-999), Лидер (1000+)
5. ✅ Админ-команды (только в личку!):
   - `/rating <ID>` — рейтинг пользователя
   - `/top` — топ-10 по рейтингу
   - `/rank` — распределение по уровням
6. ✅ Кнопка "🏆 Рейтинг" в меню админа
7. ✅ Защита: только админ, только в личке

**Документация:** `РЕЙТИНГ.md`

---

## ⏳ В работе (текущая задача)

### Дописывание телефонов админом
**Уже реализовано:**
- ✅ `/add_phone <ID> <тел>`
- ✅ `/edit_phone <ID> <тел>`
- ✅ `/remove_phone <ID>`
- ✅ `/phone <ID>`
- ✅ `/myphone <тел>` (пользователь сам)

**Требуется:**
- Интеграция с системой рейтинга
- Отображение рейтинга в профиле
- Команды для управления рейтингом

---

## 📁 Файлы сессии

| Файл | Назначение |
|------|------------|
| `SESSION_CONTEXT.md` | Этот файл — контекст сессии |
| `STATUS.md` | Общий статус проекта |
| `ГОТОВО.md` | Инструкция по запуску |
| `ИСПРАВЛЕНИЯ*.md` | История исправлений |
| `ВЕРИФИКАЦИЯ*.md` | Заметки по верификации |

---

## 🚀 Команды для запуска

```bash
cd /home/matrixhasyou/domovoy_bot

# Проверка логов
tail -f logs/bot.log

# Запуск
./run.sh
# или
python main.py

# Остановка
./stop.sh
```

---

## 🔧 Конфигурация

**Файл:** `.env`
```ini
BOT_TOKEN=xxx:xxx
ADMIN_CHAT_ID=-100xxxxxxxxx
ADMIN_USER_ID=xxxxxxxxx
USE_PROXY=true
PROXY_TYPE=socks5
PROXY_HOST=127.0.0.1
PROXY_PORT=10808
```

---

## 📝 Заметки сессии

- **Дата последней сессии:** 23 февраля 2026
- **Статус:** MVP готово, в работе система рейтинга
- **Следующая задача:** Доделать рейтинг + почистить VPN сервера от тестовых конфигов

---

*Этот файл обновляется в конце каждой сессии для сохранения контекста*
