domovoy_bot/ДОСТИЖЕНИЯ.md
Admin ba4676b0af v1.0 MVP - Инициализация проекта 🏠
 Регистрация и верификация жильцов
 Рейтинг активности (уровни)
 Детект шпионов (Score 0-100)
 Анти-мат система (3 предупреждения → бан)
 Админ-панель с рассылкой
 Учёт квартир (несколько жильцов)
 Телефоны экстренных служб и мастеров
 Еженедельный экспорт JSON
 Прокси (socks5) для обхода РКН

Бекап: backups/versions/v1.0_mvp_2026-02-26/

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-02-27 10:54:16 +00:00

367 lines
9.4 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.12
**Версия:** v1.12
**Дата:** 27 февраля 2026 г.
**Статус:** ✅ Реализовано
---
## 📋 Описание
Система геймификации для жильцов. Пользователи получают достижения за активность в чате, верификацию, высокий рейтинг и другие действия. Есть топ пользователей по достижениям.
---
## 🎯 Возможности
- ✅ 16 достижений в 9 категориях
- ✅ Авто-выдача достижений
- ✅ Уведомления о новых достижениях
- ✅ Топ пользователей по достижениям
- ✅ Просмотр своих достижений
- ✅ Просмотр достижений других (админ)
---
## 🏆 Список достижений
### 📝 Активность
| Достижение | Emoji | Описание |
|------------|-------|----------|
| **Новичок** | 🌱 | Первое сообщение в чате |
| **Активист 10** | 📝 | 10 сообщений в чате |
| **Активист 100** | ✍️ | 100 сообщений в чате |
| **Говорун 1000** | 🗣️ | 1000 сообщений в чате |
---
### ✅ Верификация
| Достижение | Emoji | Описание |
|------------|-------|----------|
| **Свой человек** | ✅ | Пройдена верификация |
---
### ⭐ Рейтинг
| Достижение | Emoji | Описание |
|------------|-------|----------|
| **Сосед** | 🏠 | Рейтинг 100 баллов |
| **Активист** | ⭐ | Рейтинг 500 баллов |
| **Лидер** | 👑 | Рейтинг 1000 баллов |
---
### ⏰ Время
| Достижение | Emoji | Описание |
|------------|-------|----------|
| **Жаворонок** | 🐦 | Сообщение в 6-7 утра |
| **Сова** | 🦉 | Сообщение после 23:00 |
---
### 📊 Опросы
| Достижение | Emoji | Описание |
|------------|-------|----------|
| **Участник опроса** | 📊 | Участие в опросе |
---
### 📢 Объявления
| Достижение | Emoji | Описание |
|------------|-------|----------|
| **Объявитель** | 📢 | Публикация объявления |
---
### 🤝 Социальные
| Достижение | Emoji | Описание |
|------------|-------|----------|
| **Помощник** | 🤝 | Получил благодарность |
---
### 🔒 Безопасность
| Достижение | Emoji | Описание |
|------------|-------|----------|
| **Охотник на шпионов** | 🕵️ | Сообщение о подозрительном поведении |
---
### 📅 Серии
| Достижение | Emoji | Описание |
|------------|-------|----------|
| **Недельный воин** | 📅 | Активность 7 дней подряд |
| **Месячный мастер** | 🗓️ | Активность 30 дней подряд |
---
## 📱 Команды
### Для всех:
| Команда | Описание | Пример |
|---------|----------|--------|
| `/achievements` | Показать свои достижения | `/achievements` |
### Для админов:
| Команда | Описание | Пример |
|---------|----------|--------|
| `/achievements_top` | Топ по достижениям | `/achievements_top` |
| `/all_achievements` | Все доступные достижения | `/all_achievements` |
| `/user_achievements <ID>` | Достижения пользователя | `/user_achievements 123456789` |
---
## 🎯 Сценарии использования
### Сценарий 1: Первое сообщение
**Пользователь пишет первое сообщение:**
**Бот:**
```
🏆 Новое достижение!
🌱 Новичок
Первое сообщение в чате
Продолжайте в том же духе!
```
---
### Сценарий 2: Просмотр своих достижений
**Пользователь:**
```
/achievements
```
**Бот:**
```
🏆 Ваши достижения
Всего: 5
📝 Активность
🌱 Новичок
📝 Активист 10
✍️ Активист 100
⭐ Рейтинг
🏠 Сосед
⭐ Активист
⏰ Время
🦉 Сова
```
---
### Сценарий 3: Топ по достижениям
**Админ:**
```
/achievements_top
```
**Бот:**
```
🏆 Топ по достижениям
🥇 Иван Иванов (кв. 45) — 12 достиж.
🥈 Петр Петров (кв. 88) — 10 достиж.
🥉 Анна Сидорова (кв. 12) — 8 достиж.
4. Мария Козлова (кв. 100) — 6 достиж.
5. Василий Смирнов (кв. 50) — 5 достиж.
```
---
### Сценарий 4: Все достижения
**Админ:**
```
/all_achievements
```
**Бот:**
```
🏆 Все достижения
Всего: 16
📝 Активность
🌱 Новичок
└─ Первое сообщение в чате
📝 Активист 10
└─ 10 сообщений в чате
...
⭐ Рейтинг
🏠 Сосед
└─ Рейтинг 100 баллов
...
```
---
## 🗄️ База данных
### Таблица `achievements`:
```sql
CREATE TABLE achievements (
id INTEGER PRIMARY KEY AUTOINCREMENT,
user_id BIGINT NOT NULL,
achievement_type TEXT NOT NULL,
earned_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
metadata TEXT, -- JSON с доп. данными
FOREIGN KEY (user_id) REFERENCES users(user_id)
)
```
### Индексы:
- `ix_achievements_user` — по пользователю
- `ix_achievements_type` — по типу достижения
---
## 🧪 Тестирование
### Чек-лист проверки:
#### 1. Авто-выдача достижений
```bash
# Отправить несколько сообщений
# Проверить что пришли уведомления
```
- [ ] Новичок (1 сообщение)
- [ ] Активист 10 (10 сообщений)
- [ ] Жаворонок/Сова (по времени)
#### 2. Просмотр достижений
```bash
/achievements
```
- [ ] Достижения отображаются
- [ ] Группировка по категориям
- [ ] Emoji правильные
#### 3. Топ по достижениям
```bash
/achievements_top
```
- [ ] Топ отображается
- [ ] Медали у первых трёх
- [ ] Количество верное
#### 4. Все достижения
```bash
/all_achievements
```
- [ ] Все 16 достижений показаны
- [ ] Описания верные
- [ ] Группировка по категориям
---
## 📁 Изменённые файлы
| Файл | Изменения |
|------|-----------|
| `database/models.py` | Модель Achievement |
| `database/migrate_add_achievements.py` | Миграция БД |
| `services/achievements.py` | Сервис достижений |
| `handlers/achievements.py` | Хендлеры |
| `handlers/chat_monitor.py` | Авто-проверка достижений |
| `handlers/__init__.py` | Импорт achievements_router |
| `main.py` | Регистрация achievements_router |
---
## 🚀 Как использовать
### Для жильца:
1. **Посмотреть свои достижения:**
```
/achievements
```
2. **Получать достижения автоматически:**
- Пишите сообщения в чат
- Пройдите верификацию
- Набирайте рейтинг
- Участвуйте в опросах
- Публикуйте объявления
---
## 💡 Советы
### Как получить все достижения:
1. **Активность:**
- Пишите сообщения регулярно
- Достигните 1000 сообщений
2. **Рейтинг:**
- Будьте активны ( +1 за сообщение)
- Достигните 1000 баллов
3. **Время:**
- Напишите утром (6-7) — Жаворонок
- Напишите ночью (после 23) — Сова
4. **Социальные:**
- Помогайте соседям
- Получите благодарность
---
## 🔧 Отладка
### Посмотреть достижения в БД:
```bash
cd /home/matrixhasyou/domovoy_bot
source venv/bin/activate
sqlite3 database/domovoy.db
SELECT user_id, achievement_type, earned_at
FROM achievements
ORDER BY earned_at DESC
LIMIT 20;
```
### Логи:
```bash
tail -f logs/bot.log | grep -i "достижен\|achievement"
```
---
## ✅ Преимущества
| Было | Стало |
|------|-------|
| Нет мотивации | **Достижения** |
| Нет геймификации | **16 достижений** |
| Нет топа | **Топ по достижениям** |
| Скучный чат | **Интересно участвовать** |
---
**Достижения готовы! 🏆**
*Следующий шаг: тестирование и фиксация версии v1.12*