from typing import Any from sqlalchemy.orm import Session from app.reminders.service import RemindersService MAX_IN_CONTEXT = 10 def get_reminders_snapshot(db: Session) -> dict[str, Any]: return RemindersService(db).snapshot() def format_reminders_context(snapshot: dict[str, Any]) -> str: lines = ["[Напоминания]"] upcoming = snapshot.get("upcoming") or [] tz = snapshot.get("timezone", "Europe/Moscow") if not upcoming: lines.append( "Ближайших напоминаний нет. " "create_reminder для «напомни через 15 минут», «завтра утром», точной даты." ) return "\n".join(lines) lines.append(f"Часовой пояс: {tz}. Tools: list_reminders, create_reminder, update_reminder, delete_reminder, complete_reminder.") for item in upcoming[:MAX_IN_CONTEXT]: rec = item.get("recurrence", "none") rec_label = f" · повтор: {rec}" if rec and rec != "none" else "" lines.append( f"- #{item['id']} **{item['title']}** · {item.get('due_at_local', item.get('due_at'))}{rec_label}" ) return "\n".join(lines)