package journal import ( "context" "log/slog" "git.golem15.com/golem15/sm-journal-plugin/models" "git.golem15.com/golem15/summercms/modules/backpack" "git.golem15.com/golem15/summercms/modules/beachcomber" _ "git.golem15.com/golem15/summercms/modules/beachcomber/typesense" "gorm.io/gorm" ) func (p *Plugin) wireSearch(app *backpack.App) error { svc, err := beachcomber.From(app) if err != nil { return err } svc.SetGate(beachcomber.GateFunc(func(ctx context.Context, db *gorm.DB) bool { on := settingsSearchEnabled(ctx, db) models.SetSearchGate(on) return on })) return nil } func settingsSearchEnabled(ctx context.Context, db *gorm.DB) bool { if db == nil { return false } var on bool err := db.WithContext(ctx).Raw(`SELECT search_use_typesense FROM golem15_journal_settings WHERE id = 1`).Scan(&on).Error if err != nil { slog.Default().Warn("journal: search_use_typesense read failed; treating as off", "err", err) return false } return on }