# Домовой бот - Структура проекта

## 📁 Структура файлов

```
domovoy_bot/
├── config.py                 # Конфигурация (токены, настройки)
├── main.py                   # Точка входа
├── requirements.txt          # Зависимости
├── .env                      # Переменные окружения (не в git!)
├── .env.example              # Пример .env
├── .gitignore
│
├── database/
│   ├── __init__.py
│   ├── db.py                 # Подключение к БД
│   ├── models.py             # SQLAlchemy модели
│   └── init_db.py            # Скрипт инициализации БД
│
├── handlers/
│   ├── __init__.py
│   ├── admin.py              # Админские команды (статистика, шпионы)
│   ├── users.py              # Пользовательские команды
│   ├── verification.py       # Верификация жильцов
│   └── chat_monitor.py       # Мониторинг чата
│
├── services/
│   ├── __init__.py
│   ├── spy_detector.py       # Детект «шпионов» УК
│   ├── analytics.py          # Аналитика и экспорт JSON
│   ├── notifications.py      # Уведомления жильцам
│   └── scheduler.py          # Планировщик задач (cron)
│
├── keyboards/
│   ├── __init__.py
│   ├── inline.py             # Inline-кнопки
│   └── reply.py              # Reply-кнопки
│
├── utils/
│   ├── __init__.py
│   ├── validators.py         # Валидация данных
│   ├── formatters.py         # Форматирование сообщений
│   └── decorators.py         # Декораторы (admin_only и т.д.)
│
├── data/
│   ├── phones.json           # Телефоны экстренных служб
│   ├── spies_patterns.json   # Паттерны поведения шпионов
│   └── templates/            # Шаблоны сообщений
│
├── logs/                     # Логи бота
├── exports/                  # JSON экспорты чата
└── backups/                  # Бэкапы БД
```

---

## 🚀 Быстрый старт

```bash
# 1. Клонировать/создать структуру
cd domovoy_bot

# 2. Создать виртуальное окружение
python3 -m venv venv
source venv/bin/activate  # Linux
# или
venv\Scripts\activate     # Windows

# 3. Установить зависимости
pip install -r requirements.txt

# 4. Настроить окружение
cp .env.example .env
# Отредактировать .env, вставить токен бота

# 5. Инициализировать БД
python database/init_db.py

# 6. Запустить бота
python main.py
```

---

## 🔧 Зависимости (requirements.txt)

```
aiogram==3.6.0              # Telegram бот (асинхронный)
sqlalchemy==2.0.23          # Работа с БД
aiosqlite==0.19.0           # SQLite для начала
apscheduler==3.10.4         # Планировщик задач
python-dotenv==1.0.0        # Переменные окружения
pandas==2.1.4               # Аналитика данных
aiohttp==3.9.1              # HTTP запросы
```

---

## ⚙️ Конфигурация (.env)

```ini
# Telegram
BOT_TOKEN=1234567890:ABCdefGHIjklMNOpqrsTUVwxyz
ADMIN_CHAT_ID=-1001234567890    # ID основного чата
ADMIN_USER_ID=123456789         # Твой Telegram ID

# База данных
DATABASE_PATH=./database/domovoy.db

# Экспорт
EXPORT_DIR=./exports
EXPORT_SCHEDULE=0 3 * * 0      # Каждое воскресенье в 03:00

# Детект шпионов
SPY_DETECTION_ENABLED=true
SPY_ALERT_USER_ID=123456789    # Куда слать тревоги

# Логирование
LOG_LEVEL=INFO
LOG_FILE=./logs/bot.log
```

---

## 📊 Админские функции (только тебе)

| Команда | Описание |
|---------|----------|
| `/admin` | Главное меню админа |
| `/stats` | Статистика чата за период |
| `/spies` | Подозрительные аккаунты |
| `/export` | Принудительный экспорт JSON |
| `/users` | Список всех жильцов |
| `/unverified` | Непроверенные участники |
| `/activity` | Рейтинг активности |
| `/broadcast` | Рассылка всем жильцам |

---

## 📱 Пользовательские команды (жильцам)

| Команда | Кнопка | Описание |
|---------|--------|----------|
| `/старт` | — | Регистрация |
| `/помощь` | 🔘 Помощь | Список команд |
| `/телефон` | 📞 Телефоны | Экстренные службы |
| `/мастера` | 🔘 Мастера | Сантехники/электрики |
| `/график` | 🔘 График | Отключения воды/света |
| `/объявления` | 🔘 Объявления | Новости дома |
| `/продам` | 🔘 Продать | Разместить объявление |
| `/моя_квартира` | 🔘 Моя квартира | Проверка привязки |

---

## 🕵️ Детект шпионов — алгоритм

Бот отслеживает в фоне и присваивает «рейтинг подозрительности» (0-100):

```
Факторы:
├─ Аккаунт создан < 7 дней: +20
├─ Нет аватарки: +10
├─ Ник вида user12345: +15
├─ Не прошёл верификацию > 24ч: +25
├─ Пишет только провокации: +30
├─ Активность 9:00-18:00 пн-пт: +15
├─ Мультиаккаунт (same device): +50
└─ Жалобы от жильцов: +10 за каждую

Пороги:
├─ 0-30: Норма (зелёный)
├─ 31-60: Подозрительно (жёлтый) → пометка в базе
└─ 61-100: Шпион! (красный) → уведомление админу
```

---

## 📈 Следующие шаги

1. ✅ Создать структуру файлов
2. ✅ Написать `config.py` и `requirements.txt`
3. ✅ Создать модели БД (`database/models.py`)
4. ✅ Написать базового бота (`main.py`)
5. ✅ Реализовать верификацию (`handlers/verification.py`)
6. ✅ Сделать админские команды (`handlers/admin.py`)
7. ✅ Детект шпионов (`services/spy_detector.py`)
8. ✅ Экспорт JSON (`services/analytics.py`)
9. ✅ Инлайн-меню для жильцов (`keyboards/inline.py`)
10. ✅ Телефоны служб (`data/phones.json`)

---

**Готов начать? Создаю файлы!**
