Add Pulse notifications plan
This commit is contained in:
53
Projects/Pulse/Notifications.md
Normal file
53
Projects/Pulse/Notifications.md
Normal file
@@ -0,0 +1,53 @@
|
|||||||
|
# Pulse — Система уведомлений
|
||||||
|
|
||||||
|
## Telegram бот
|
||||||
|
|
||||||
|
### Функционал
|
||||||
|
- При `/start` бот отправляет пользователю его `chat_id`
|
||||||
|
- Пользователь копирует этот ID и вставляет в профиль на сайте
|
||||||
|
- Бот отправляет уведомления о задачах и привычках
|
||||||
|
|
||||||
|
### Реализация
|
||||||
|
- Часть homelab-api (отдельный goroutine)
|
||||||
|
- Используем go-telegram-bot-api
|
||||||
|
- Long polling
|
||||||
|
|
||||||
|
## Профиль пользователя
|
||||||
|
|
||||||
|
### Новые поля в БД (таблица users)
|
||||||
|
```sql
|
||||||
|
ALTER TABLE users ADD COLUMN telegram_chat_id BIGINT;
|
||||||
|
ALTER TABLE users ADD COLUMN notifications_enabled BOOLEAN DEFAULT true;
|
||||||
|
ALTER TABLE users ADD COLUMN morning_reminder_time TIME DEFAULT '09:00';
|
||||||
|
ALTER TABLE users ADD COLUMN evening_reminder_time TIME DEFAULT '18:00';
|
||||||
|
ALTER TABLE users ADD COLUMN timezone VARCHAR(50) DEFAULT 'Europe/Moscow';
|
||||||
|
```
|
||||||
|
|
||||||
|
### API endpoints
|
||||||
|
- `GET /profile` — получить профиль
|
||||||
|
- `PUT /profile` — обновить профиль
|
||||||
|
|
||||||
|
## Напоминания
|
||||||
|
|
||||||
|
### Задачи (Tasks)
|
||||||
|
- **Утром (9:00)**: список задач на сегодня
|
||||||
|
- **Вечером (18:00)**: невыполненные задачи
|
||||||
|
|
||||||
|
### Привычки (Habits)
|
||||||
|
- **Утром**: какие привычки нужно выполнить сегодня
|
||||||
|
- **Вечером**: невыполненные привычки
|
||||||
|
|
||||||
|
### Scheduler
|
||||||
|
- `robfig/cron` в Go
|
||||||
|
- Проверка каждую минуту, отправка по времени пользователя
|
||||||
|
|
||||||
|
## TODO
|
||||||
|
- [ ] Создать Telegram бота (@BotFather)
|
||||||
|
- [ ] Миграция БД
|
||||||
|
- [ ] API: /profile
|
||||||
|
- [ ] Telegram bot handler
|
||||||
|
- [ ] Scheduler
|
||||||
|
- [ ] UI: страница профиля/настроек
|
||||||
|
|
||||||
|
---
|
||||||
|
*Создано: 2026-02-06*
|
||||||
Reference in New Issue
Block a user