package plugin import ( "fmt" "log/slog" "strings" "time" "gogobee/internal/db" "github.com/google/uuid" "github.com/olebedev/when" "github.com/olebedev/when/rules/common" "github.com/olebedev/when/rules/en" "maunium.net/go/mautrix" "maunium.net/go/mautrix/id" ) // RemindersPlugin handles user reminders with natural language time parsing. type RemindersPlugin struct { Base parser *when.Parser } // NewRemindersPlugin creates a new RemindersPlugin. func NewRemindersPlugin(client *mautrix.Client) *RemindersPlugin { w := when.New(nil) w.Add(en.All...) w.Add(common.All...) return &RemindersPlugin{ Base: NewBase(client), parser: w, } } func (p *RemindersPlugin) Name() string { return "reminders" } func (p *RemindersPlugin) Commands() []CommandDef { return []CommandDef{ {Name: "remindme", Description: "Set a reminder", Usage: "!remindme