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

314 lines
8.5 KiB
Markdown
Raw Permalink 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.13
**Версия:** v1.13
**Дата:** 27 февраля 2026 г.
**Статус:** ✅ Реализовано
---
## 📋 Описание
Система благодарностей позволяет жильцам благодарить друг друга за помощь. Получатель благодарности получает +10 к рейтингу и достижение "Помощник" (если первое).
---
## 🎯 Возможности
- ✅ Отправка благодарностей по @username или ID
- ✅ Ограничение: 1 благодарность в день одному пользователю
- ✅ +10 к рейтингу получателю
- ✅ Достижение "Помощник" при первой благодарности
- ✅ Топ пользователей по благодарностям
- ✅ История благодарностей
- ✅ Статистика полученных/отправленных
---
## 📱 Команды
### Для всех:
| Команда | Описание | Пример |
|---------|----------|--------|
| `/thank @username` | Поблагодарить пользователя | `/thank @ivanov` |
| `/thank <user_id>` | Поблагодарить по ID | `/thank 123456789` |
| `/my_thanks` | Мои благодарности | `/my_thanks` |
| `/thanks_top` | Топ по благодарностям | `/thanks_top` |
| `/thanks_history` | История благодарностей | `/thanks_history` |
---
## 🎯 Сценарии использования
### Сценарий 1: Отправка благодарности
**Пользователь:**
```
/thank @ivanov
```
**Бот:**
```
🙏 Благодарность для Иван Иванов
Отправьте текст благодарности (необязательно) или "пропустить":
```
**Пользователь:**
```
Спасибо за помощь с сантехником!
```
**Бот (отправителю):**
```
✅ Благодарность отправлена!
Получатель: Иван Иванов
Сообщение: Спасибо за помощь с сантехником!
```
**Бот (получателю в личку):**
```
🙏 Вам благодарность!
От: Петр Петров
Сообщение: Спасибо за помощь с сантехником!
+10 к рейтингу!
```
**Если первая благодарность — ещё и достижение:**
```
🏆 Новое достижение!
🤝 Помощник
Получил благодарность от соседа
Продолжайте помогать!
```
---
### Сценарий 2: Ответ на сообщение
**Пользователь отвечает на сообщение командой:**
```
/thank
```
**Бот:**
```
🙏 Благодарность для [имя отвечаемого]
Отправьте текст благодарности или "пропустить":
```
---
### Сценарий 3: Повторная благодарность
**Пользователь пытается поблагодарить второй раз за день:**
**Бот:**
```
⚠️ Вы уже благодарили этого пользователя сегодня!
Можно поблагодарить только один раз в день.
```
---
### Сценарий 4: Мои благодарности
**Пользователь:**
```
/my_thanks
```
**Бот:**
```
🙏 Ваши благодарности
✅ Получено: 5
📤 Отправлено: 3
Последние полученные:
• От user123: Спасибо за консультацию!
• От user456: Спасибо!
• От user789: Очень помог!
```
---
### Сценарий 5: Топ по благодарностям
**Пользователь:**
```
/thanks_top
```
**Бот:**
```
🙏 Топ по благодарностям
🥇 Иван Иванов (кв. 45) — 15 благодар.
🥈 Петр Петров (кв. 88) — 12 благодар.
🥉 Анна Сидорова (кв. 12) — 10 благодар.
4. Мария Козлова (кв. 100) — 8 благодар.
5. Василий Смирнов (кв. 50) — 6 благодар.
```
---
## 🗄️ База данных
### Таблица `thanks`:
```sql
CREATE TABLE thanks (
id INTEGER PRIMARY KEY AUTOINCREMENT,
from_user_id BIGINT NOT NULL, -- Кто поблагодарил
to_user_id BIGINT NOT NULL, -- Кого поблагодарили
message TEXT, -- Текст благодарности
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (from_user_id) REFERENCES users(user_id),
FOREIGN KEY (to_user_id) REFERENCES users(user_id)
)
```
### Индексы:
- `ix_thanks_from` — по отправителю
- `ix_thanks_to` — по получателю
- `ix_thanks_created` — по времени
---
## 🧪 Тестирование
### Чек-лист проверки:
#### 1. Отправка благодарности
```bash
/thank @username
# Отправить текст
```
- [ ] Благодарность сохранена
- [ ] Получатель уведомлён
- [ ] +10 к рейтингу начислено
#### 2. Первая благодарность
```bash
# Получить первую благодарность
```
- [ ] Достижение "Помощник" выдано
- [ ] Уведомление о достижении пришло
#### 3. Повторная благодарность
```bash
# Попытаться поблагодарить второй раз за день
```
- [ ] Бот блокирует повторную благодарность
#### 4: Мои благодарности
```bash
/my_thanks
```
- [ ] Статистика отображается
- [ ] Последние полученные показаны
#### 5: Топ
```bash
/thanks_top
```
- [ ] Топ отображается
- [ ] Медали у первых трёх
---
## 📁 Изменённые файлы
| Файл | Изменения |
|------|-----------|
| `database/models.py` | Модель Thank |
| `database/migrate_add_thanks.py` | Миграция БД |
| `services/thanks.py` | Сервис благодарностей |
| `services/achievements.py` | Достижение "Помощник" |
| `handlers/thanks.py` | Хендлеры благодарностей |
| `handlers/__init__.py` | Импорт thanks_router |
| `main.py` | Регистрация thanks_router |
---
## 🚀 Как использовать
### Для жильца:
1. **Поблагодарить:**
```
/thank @ivanov
```
2. **Посмотреть свои благодарности:**
```
/my_thanks
```
3. **Посмотреть топ:**
```
/thanks_top
```
---
## 💡 Советы
### Ограничения:
- **1 благодарность в день** — одному пользователю
- **Нельзя себе** — нельзя поблагодарить самого себя
- **+10 к рейтингу** — за каждую благодарность
### Когда благодарить:
- ✅ Сосед помог с ремонтом
- ✅ Подсказали по вопросам ЖКХ
- ✅ Помогли с доставкой
- ✅ Поделились контактами мастеров
- ✅ Любая другая помощь
---
## 🔧 Отладка
### Посмотреть благодарности в БД:
```bash
cd /home/matrixhasyou/domovoy_bot
source venv/bin/activate
sqlite3 database/domovoy.db
SELECT from_user_id, to_user_id, message, created_at
FROM thanks
ORDER BY created_at DESC
LIMIT 20;
```
### Логи:
```bash
tail -f logs/bot.log | grep -i "благодар\|thank"
```
---
## ✅ Преимущества
| Было | Стало |
|------|-------|
| Нет способа сказать спасибо | **Система благодарностей** |
| Нет мотивации помогать | **+10 к рейтингу** |
| Нет признания | **Достижение "Помощник"** |
| Не видно кто помогает | **Топ по благодарностям** |
---
**Система благодарностей готова! 🙏**
*Следующий шаг: тестирование и фиксация версии v1.13*