cf066bde97
Store: CalendarEvents(ctx, from, to) — filters caldav facts by key date prefix. IPC: full wiring through interface, server dispatch, and client. Router: ParseCalendarDate (сегодня/завтра), CalendarEventFormatter (RU reply). Voice: calendar detection before notes RAG in IntentQuery handler. Tests: store integration test, date parser tests, formatter tests. Co-Authored-By: opencode <opencode@anthropic.com>
20 lines
533 B
Go
20 lines
533 B
Go
package router
|
|
|
|
import (
|
|
"fmt"
|
|
"strings"
|
|
"time"
|
|
)
|
|
|
|
// CalendarEventFormatter formats calendar events into a Russian reply string.
|
|
type CalendarEventFormatter struct{}
|
|
|
|
// Format returns a Russian reply for the given calendar events on the given date.
|
|
func (CalendarEventFormatter) Format(events []string, date time.Time) string {
|
|
dateStr := date.Format("02.01.2006")
|
|
if len(events) == 0 {
|
|
return fmt.Sprintf("на %s ничего нет.", dateStr)
|
|
}
|
|
return fmt.Sprintf("на %s: %s", dateStr, strings.Join(events, "; "))
|
|
}
|