Files
obsidian/Projects/Pulse/Notifications.md
2026-02-06 11:44:05 +00:00

54 lines
1.8 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.
# 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*