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

1.8 KiB
Raw Blame History

Pulse — Система уведомлений

Telegram бот

Функционал

  • При /start бот отправляет пользователю его chat_id
  • Пользователь копирует этот ID и вставляет в профиль на сайте
  • Бот отправляет уведомления о задачах и привычках

Реализация

  • Часть homelab-api (отдельный goroutine)
  • Используем go-telegram-bot-api
  • Long polling

Профиль пользователя

Новые поля в БД (таблица users)

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