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

371 lines
10 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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.6
**Версия:** v1.6
**Дата:** 26 февраля 2026 г.
**Статус:** ✅ Реализовано
---
## 📋 Описание
Система напоминаний о платежах за коммунальные услуги. Админ создаёт напоминания о платежах, бот автоматически рассылает напоминания 5-го и 9-го числа каждого месяца, жильцы всегда в курсе сроков оплаты.
---
## 🎯 Возможности
- ✅ 8 типов платежей (электроэнергия, вода, отопление, газ, содержание жилья, мусор, интернет, другое)
- ✅ Пошаговое создание напоминаний
- ✅ Авто-рассылка 5-го и 9-го числа в 09:00
- ✅ Ссылки на оплату (Госуслуги, Сбербанк, Тинькофф)
- ✅ Просмотр всех платежей
- ✅ Удаление напоминаний
- ✅ Ежемесячные повторяющиеся платежи
---
## 📱 Команды
### Для администраторов:
| Команда | Описание | Пример |
|---------|----------|--------|
| `/payment_add` | Добавить напоминание о платеже | `/payment_add` |
| `/payment_del <ID>` | Удалить напоминание по ID | `/payment_del 5` |
| `/payments`, `/платежи` | Показать все напоминания | `/payments` |
### Для всех:
| Команда | Описание | Пример |
|---------|----------|--------|
| `/payments`, `/платежи` | Показать все напоминания | `/payments` |
---
## 🎯 Типы платежей
| № | Тип | Emoji | Описание |
|---|-----|-------|----------|
| 1 | ⚡ Электроэнергия | ⚡ | Оплата за свет |
| 2 | 💧 Вода | 💧 | ХВС, ГВС, водоотведение |
| 3 | 🔥 Отопление | 🔥 | Отопительный сезон |
| 4 | 🔶 Газ | 🔶 | Газоснабжение |
| 5 | 🏠 Содержание жилья | 🏠 | Содержание и ремонт |
| 6 | 🗑️ Вывоз мусора | 🗑️ | ТКО, мусор |
| 7 | 📡 Интернет | 📡 | Домашний интернет |
| 8 | 📋 Другое | 📋 | Прочие платежи |
---
## 🎯 Сценарии использования
### Сценарий 1: Создание напоминания
**1. Админ пишет:**
```
/payment_add
```
**2. Бот показывает меню:**
```
💳 Добавление напоминания о платеже
Выберите тип платежа:
1⃣ ⚡ Электроэнергия
2⃣ 💧 Вода
3⃣ 🔥 Отопление
4⃣ 🔶 Газ
5⃣ 🏠 Содержание жилья
6⃣ 🗑️ Вывоз мусора
7⃣ 📡 Интернет
8⃣ 📋 Другое
Или отправьте номер типа (1-8):
[кнопки с типами]
```
**3. Админ нажимает** `💧 Вода` **или отправляет** `2`
**4-8. Пошаговый ввод:**
- Название: `Квартплата за воду`
- Сумма: `1500`
- Дата оплаты: `10` (ежемесячно до 10 числа)
- Описание: `ХВС, ГВС, водоотведение`
**9. Бот подтверждает:**
```
✅ Напоминание о платеже добавлено!
💧 Вода — Квартплата за воду
💰 Сумма: 1500 ₽
📅 Срок оплаты: 10 число каждого месяца
🔖 ID: 1
Для просмотра: /payments
```
---
### Сценарий 2: Просмотр платежей
**Жилец или админ:**
```
/payments
```
**Бот:**
```
💳 Напоминания о платежах ЖКХ
1. Квартплата за воду
└─ Сумма: 1500 ₽
└─ Срок: 10 число
└─ Осталось дней: 5
2. Электроэнергия
└─ Сумма: 800 ₽
└─ Срок: 15 число
└─ Осталось дней: 10
3. Интернет
└─ Сумма: Переменная
└─ Срок: 25 число
└─ Осталось дней: 20
💡 Для добавления: /payment_add
```
---
### Сценарий 3: Авто-напоминание (5 число)
**5-го числа в 09:00 (автоматически):**
**Бот пишет в чат:**
```
⏰ Напоминание об оплате ЖКХ!
Сегодня 5 число. Не забудьте оплатить:
✅ Квартплата за воду
└─ Срок: 10 число (осталось 5 дн.)
└─ Сумма: 1500 ₽
✅ Электроэнергия
└─ Срок: 15 число (осталось 10 дн.)
└─ Сумма: 800 ₽
💳 Ссылки на оплату:
• [Госуслуги ЖКХ](https://www.gosuslugi.ru/category/payments/zhkh)
• [Сбербанк Онлайн](https://www.sberbank.ru/ru/person/payments/zhkh)
• [Тинькофф ЖКХ](https://www.tinkoff.ru/payments/zhkh)
_Оплатить можно через Госуслуги, Сбербанк или Тинькофф_
```
---
### Сценарий 4: Удаление напоминания
**Админ:**
```
/payment_del 1
```
**Бот:**
```
✅ Напоминание "Квартплата за воду" удалено
```
---
## 🗄️ База данных
### Таблица `payment_reminders`:
```sql
CREATE TABLE payment_reminders (
reminder_id INTEGER PRIMARY KEY AUTOINCREMENT,
title TEXT NOT NULL,
amount INTEGER, -- Сумма в рублях
due_date TIMESTAMP NOT NULL, -- Дата оплаты
description TEXT,
payment_link TEXT, -- Ссылка на оплату
is_recurring BOOLEAN DEFAULT 1, -- Ежемесячный
created_by BIGINT,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
is_active BOOLEAN DEFAULT 1,
last_reminder_sent TIMESTAMP,
FOREIGN KEY (created_by) REFERENCES users(user_id)
)
```
### Индексы:
- `ix_payment_reminders_due_date` — по дате
- `ix_payment_reminders_active` — по статусу
---
## 🧪 Тестирование
### Чек-лист проверки:
#### 1. Создание напоминания
```bash
# Админ:
/payment_add
# Выбрать тип, название, сумму, дату, описание
```
- [ ] Меню типов отображается
- [ ] Пошаговый ввод работает
- [ ] Напоминание сохранено в БД
#### 2. Просмотр платежей
```bash
/payments
```
- [ ] Напоминания отображаются
- [ ] Сумма указана верно
- [ ] Дней до срока считается правильно
#### 3. Удаление
```bash
# Админ:
/payment_del 1
```
- [ ] Напоминание удалено (is_active=False)
#### 4. Авто-напоминание
```bash
# Установить в БД last_reminder_sent на вчера
# Или подождать 5 или 9 число
```
- [ ] Напоминание приходит в 09:00
- [ ] Ссылки на оплату отображаются
---
## 📁 Изменённые файлы
| Файл | Изменения |
|------|-----------|
| `database/models.py` | Модель PaymentReminder |
| `database/migrate_add_payment_reminders.py` | Миграция БД |
| `handlers/payments.py` | Хендлеры платежей |
| `keyboards/inline.py` | Клавиатуры для платежей |
| `services/scheduler.py` | Авто-напоминания |
| `data/payment_links.json` | Ссылки на оплату |
| `handlers/__init__.py` | Импорт payments_router |
| `main.py` | Регистрация payments_router |
---
## 🚀 Как использовать
### Для админа:
1. **Добавить напоминание:**
```
/payment_add
```
Далее следуй инструкциям бота.
2. **Посмотреть все платежи:**
```
/payments
```
3. **Удалить напоминание:**
```
/payment_del 1
```
### Для жильца:
1. **Посмотреть напоминания:**
```
/payments
```
2. **Получить напоминание:**
- Автоматически 5-го и 9-го числа в 09:00
---
## 💡 Советы
### Когда настраивать:
- **Сумма:** Указывайте среднюю сумму за месяц
- **Дата:** Дата до которой нужно оплатить
- **Описание:** Что входит в платёж (например "ХВС, ГВС, водоотведение")
### Ссылки на оплату:
Отредактируйте `data/payment_links.json`:
```json
{
"payment_links": [
{
"name": "Ваш банк",
"url": "https://ссылка-на-оплату",
"description": "Описание"
}
]
}
```
### Дни напоминаний:
По умолчанию: **5 и 9 число**
Измените в `data/payment_links.json`:
```json
{
"default_reminder_days": [3, 7] // 3 и 7 число
}
```
---
## 🔧 Отладка
### Посмотреть напоминания в БД:
```bash
cd /home/matrixhasyou/domovoy_bot
source venv/bin/activate
sqlite3 database/domovoy.db
SELECT reminder_id, title, amount, due_date, is_active
FROM payment_reminders
ORDER BY due_date;
```
### Логи:
```bash
tail -f logs/bot.log | grep -i "платеж\|payment"
```
### Тест напоминания:
```bash
# В БД установить текущую дату на 5 число
# Или вызвать функцию вручную через Python
```
---
## ✅ Преимущества
| Было | Стало |
|------|-------|
| Забывают про оплату | **Напоминания 5 и 9 числа** |
| Нет ссылок на оплату | **Ссылки в сообщении** |
| Ручное напоминание | **Авто-рассылка** |
| Не видно список | **/payments — все платежи** |
---
**Напоминания о платежах готовы! 💳**
*Следующий шаг: тестирование на тестовой группе и фиксация версии v1.6*