# 🛡️ Безопасность: Бан, Отзыв верификации, Логирование

## ✅ Что добавлено:

### 1️⃣ Отзыв верификации (`/unverify`)
### 2️⃣ Бан / Разбан (`/ban`, `/unban`)
### 3️⃣ Логирование подозрительных (`/log_spy`)
### 4️⃣ Авто-удаление через 7 дней
### 5️⃣ Отдельные логи для шпионов

---

## 📋 Все команды безопасности

| Команда | Описание | Пример |
|---------|----------|--------|
| `/unverify <ID> [причина]` | Отозвать верификацию | `/unverify 123456789 Шпион УК` |
| `/ban <ID> [причина]` | Забанить + удалить из чата | `/ban 123456789 Мат` |
| `/unban <ID>` | Разбанить | `/unban 123456789` |
| `/log_spy <ID> [коммент]` | Создать лог подозрительного | `/log_spy 123456789 Странные сообщения` |
| `/banned` | Список забаненных | `/banned` |
| `/unverified_list` | С отозванной верификацией | `/unverified_list` |
| `/check_unverified` | Проверка кто не верифицирован >7 дней | `/check_unverified` |

---

## 🎯 Сценарий 1: Подозрительный жилец

**Проблема:** Жилец ведёт себя подозрительно, возможно шпион УК.

**Решение (по шагам):**

### Шаг 1: Создаём лог
```bash
/log_spy 123456789 Подозрительная активность в пользу УК
```

**Что происходит:**
- Spy Score увеличивается на 20
- Создаётся запись в БД
- **Сохраняется отдельный лог-файл** в `logs/spy_logs/`

**Файл лога:**
```
logs/spy_logs/123456789_username_20260223_170000.log
```

### Шаг 2: Если подозрения подтвердились — отзываем верификацию
```bash
/unverify 123456789 Подозрение на шпиона УК
```

**Что происходит:**
- Пользователь становится `verified=False`
- Ему отправляется уведомление в личку
- **Даётся 7 дней** на повторную верификацию
- Админ получает подтверждение

**Пользователь получает:**
```
⚠️ Верификация отозвана

Причина: Подозрение на шпиона УК

❗ Что дальше:
У вас есть 7 дней на повторную верификацию.
Если не пройдёте верификацию — будете удалены из чата.

Для верификации напишите боту номер квартиры в личку.
```

### Шаг 3: Если не верифицировался за 7 дней — авто-удаление

**Бот автоматически:**
- Проверяет каждый день в 03:00
- Находит кто не верифицирован >7 дней
- **Удаляет из чата**
- Помечает `is_banned=True`
- Уведомляет админа

**Админ получает:**
```
🗑️ Пользователь удалён из чата

Пользователь: Иван Иванов
Квартира: 45
Причина: Не прошёл верификацию за 7 дней
```

---

## 🎯 Сценарий 2: Грубое нарушение (мат, спам)

**Проблема:** Пользователь нарушает правила чата.

**Решение:**
```bash
/ban 123456789 Мат и оскорбления
```

**Что происходит:**
- `is_banned=True` в БД
- Бот **пытается удалить из чата** (нужны права админа!)
- Если не удалось — админ получает уведомление удалить вручную

**Если нужно удалить вручную:**
1. Зайди в чат
2. Найди пользователя
3. Удали через интерфейс Telegram

---

## 🎯 Сценарий 3: Ошибка, пользователь не шпион

**Проблема:** Отозвали верификацию, но пользователь не шпион.

**Решение:**

### Вариант А: Просто верифицируем заново
Пользователь пишет боту в личку: `45`
Админ подтверждает: `/verify_approve 123456789`

### Вариант Б: Разбан (если был забанен)
```bash
/unban 123456789
```

---

## 📊 Логи подозрительных

### Где хранятся:
```
/home/matrixhasyou/domovoy_bot/logs/spy_logs/
```

### Имя файла:
```
{user_id}_{username}_{дата}.log
```

**Пример:**
```
123456789_ivanov_20260223_170000.log
```

### Что внутри:
```
=== ЛОГ ПОДОЗРИТЕЛЬНОЙ АКТИВНОСТИ ===
Дата: 23.02.2026 17:00
Пользователь: Иван Иванов
ID: 123456789
Username: @ivanov
Квартира: 45
Spy Score: 65/100

Комментарий админа:
Подозрительная активность в пользу УК

=== История сообщений (последние 50) ===
(см. в основном экспорте)

=== Статус ===
Верифицирован: Нет
Забанен: Нет
```

---

## ⏰ Автоматические проверки

### Ежедневно в 02:00 — Проверка шпионов
- Анализирует Spy Score
- При score > 60 — уведомление админу

### Ежедневно в 03:00 — Проверка неверифицированных
- Находит кто не верифицирован >7 дней
- **Удаляет из чата автоматически**
- Уведомляет админа

---

## 🧪 Тестирование

### Тест 1: Отзыв верификации

1. **С второго аккаунта** верифицируйся: `100`
2. **Админ получает** уведомление
3. **Админ подтверждает:** `/verify_approve <ID>`
4. **Админ отзывает:** `/unverify <ID> Тест`
5. **Пользователь получает** уведомление о 7 днях

### Тест 2: Проверка авто-удаления

**Для быстрого теста** (не ждать 7 дней):

1. В БД вручную измени `verification_date` на 8 дней назад:
   ```sql
   UPDATE users SET verification_date=datetime('now', '-8 days') WHERE user_id=123456789;
   ```

2. Запусти проверку:
   ```bash
   /check_unverified
   ```

3. Бот покажет список на удаление

### Тест 3: Логирование

1. Создай лог:
   ```bash
   /log_spy 123456789 Тестовая запись
   ```

2. Проверь файл:
   ```bash
   ls -la logs/spy_logs/
   cat logs/spy_logs/*_123456789_*.log
   ```

---

## 💡 Золотой сценарий для шпиона

```
1. /log_spy 123456789 Странные сообщения в пользу УК
   → Spy Score +20, лог сохранён

2. /spies
   → Проверяешь что score стал >60

3. /unverify 123456789 Подозрение на шпиона
   → Верификация отозвана, дано 7 дней

4. Ждёшь 7 дней
   → Если не верифицировался:

5. Бот автоматически удаляет в 03:00
   → Админ получает уведомление
```

**Всё приватно!** Никто в группе не видит.

---

## 📊 Мониторинг

### Посмотреть забаненных:
```bash
/banned
```

### Посмотреть с отозванной верификацией:
```bash
/unverified_list
```

### Проверить кто не верифицирован >7 дней:
```bash
/check_unverified
```

### Посмотреть логи шпионов:
```bash
ls -la logs/spy_logs/
```

---

## ✅ Преимущества

| Было | Стало |
|------|-------|
| Нельзя отозвать верификацию | `/unverify` — отзыв с причиной |
| Нет банов | `/ban` — бан + удаление |
| Нет логов подозрительных | Отдельные логи в `logs/spy_logs/` |
| Ручное удаление | **Авто-удаление через 7 дней** |
| Не видно кто не верифицирован | `/unverified_list` — полный список |

---

**Теперь полная безопасность дома!** 🛡️🚀
