diff --git a/Projects/Pulse/Notifications.md b/Projects/Pulse/Notifications.md new file mode 100644 index 0000000..f2717a0 --- /dev/null +++ b/Projects/Pulse/Notifications.md @@ -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*