package application import ( "context" mobilityaccountsstorage "git.coopgo.io/coopgo-platform/mobility-accounts/storage" "github.com/rs/zerolog/log" ) type GlobalSearchResult struct { Beneficiaries []mobilityaccountsstorage.Account SolidarityDrivers []mobilityaccountsstorage.Account OrganizedCarpoolDrivers []mobilityaccountsstorage.Account } func (h *ApplicationHandler) GlobalSearch(ctx context.Context, query string) (*GlobalSearchResult, error) { result := &GlobalSearchResult{} if h.config.GetBool("modules.beneficiaries.enabled") { beneficiaries, err := h.getBeneficiariesWithFilters(ctx, query, false) if err != nil { log.Error().Err(err).Msg("global search: error retrieving beneficiaries") } else { result.Beneficiaries = beneficiaries } } if h.config.GetBool("modules.solidarity_transport.enabled") { drivers, err := h.solidarityDrivers(ctx, query, false) if err != nil { log.Error().Err(err).Msg("global search: error retrieving solidarity drivers") } else { result.SolidarityDrivers = drivers } } if h.config.GetBool("modules.organized_carpool.enabled") { drivers, err := h.getOrganizedCarpoolDrivers(ctx, query, false) if err != nil { log.Error().Err(err).Msg("global search: error retrieving organized carpool drivers") } else { result.OrganizedCarpoolDrivers = drivers } } return result, nil }